Jump to content

[Aide] Développement module coté Admin


Recommended Posts

Bonjour à tous, 

Alors voilà mon problème, j'ai l'habitude de faire des modules coté Front et là je dois en faire un coté Admin.

J'ai regardé la doc Prestashop grâce à laquelle j'ai réussi à afficher une page configuration dans l'admin pour mon module, grâce aux méthode getContent() et renderForm().

Ce que j'aimerais c'est "lié" un controller qui s'occuperait d'appeler un tpl coté Admin, plus propre et MVC alors que là je traite tout dans mon fichier monModule.php à la racine.

Enfait pour résumer voici le fonctionnement :
dans la liste des modules, sur mon module je clique sur "configurer" et là j'arrive sur une page dans l'admin où ensuite je récupererai des infos en BDD et les afficherai et pourrait les éditer.

J'ai vu que généralement en Admin on crée un nouvel onglet sauf que moi tout doit se faire dans "configurer" . 

Du coup quelle est la procédure pour lié mon controller ?

Merci d'avance !


EDIT : j'ai essayé de créér un nouvel onglet quand même dans l'admin et quand je clique dessus j'ai le droit à une erreur "controller not found" 

Alors que j'ai : monmodule.php et  /controllers/admin/AdminMonModuleController.php 

je ne comprends pas

Edited by Egx_Tech (see edit history)
Link to comment
Share on other sites

J'ai réussi à avoir d'une part :

- le lien "configurer" sur mon module (module admin je rappelle) grâce à la méthode getContent()

 

d'autre part : 

- un nouvel onglet dans l'admin avec le nom de mon module (grâce à new Tab()) menant vers une page perso

le problème c'est que j'aimerais que ces deux pages soient les mêmes. Je peux faire une redirection de l'une vers l'autre et vice versa mais c'est pas très propre.

J'ai essayé d'afficher un tpl mais ça ne marche pas :/ dans mon controller j'ai essayé setTemplate (page blanche) ou display mais la j'ai le menu du back office qui se duplique ...

Ce que j'aimerais c'est que le lien "configurer" et le lien "nouvel onglet du module dans l'admin" menent vers la même page de configuration du module. 

Si quelqu'un sait comment faire, merci !

Link to comment
Share on other sites

Merci, oui le display fonctionne dans le getContent() mais est il possible de lier un controller à mon fichier php (à la racine du module) ? ou alors mettre getContent() dans un controller.

 

Je cherche à rendre la configuration de mon module en MVC. 

Idéalement quand on clique sur "configurer" j'aimerais que derrière ce soit un controller et un tpl qui tournent. Et non mettre le tout dans le fichier php à la racine de mon module. 

Désolé pour les explications c'est pas facile à expliquer justement ^^ mais merci !

Link to comment
Share on other sites

Le getContent() est prévu pour une configuration "simple", après si tu souhaites faire tourner un controller entier sur le module, 

je te conseille de t'inspirer du code de PrestaEdit avec le module d'example qui est super bien foutu et qui te montre un peu tous ce que tu peux faire avec le MVC de Prestashop 

https://github.com/PrestaEdit/Canvas-Module-Prestashop-15

 

Le module est pour une version 1.5 j'ai pas tester pour la 1.6, y'a des chances que ça marche.

Personnelement j'ai déjà fait un module en MVC en respectant l'API de prestashop et je trouve que c'est vraiment compliqué pour grand chose.

Maintenant je renvoi tout sur une view smarty et je m'en sort beaucoup plus facilement.

 

Peut être que tu peux faire dans ton controller une nouvelle instance de ton objet et afficher un methode public qui renvoi du HTML ? non ?

Link to comment
Share on other sites

Merci pour le module de Presta Edit je vais regarder, d'ailleurs je n'arrive pas à l'installer pour le tester, j'ai essayé en uploadant le zip ou en placant le dossier dans /modules mais rien y fait , j'ai loupé qqch ?

Sinon pour toi quelle est la meilleure solution pour moi ? j'ai juste besoin d'un module configurable et sur la page de configuration un tableau de données éditables avec possibilité d'en ajouter. 

D'ailleurs je pense que ce qu'il me faut utiliser c'est renderList() et non renderForm() mais je n'ai pas trouvé comment utiliser cette méthode

Link to comment
Share on other sites

Pour le module de prestaedit, renomme le dossier par example et envoi le en ftp.

 

Personnelement j'ai eu le même cas pour ce module 

http://addons.prestashop.com/fr/fonctionnalites-front-office-modules-prestashop/15528-protection-par-login.html

 

je me suis tout simplement inspiré du blockreasurance qui correspondait exactement à ce que je voulais faire. D'apères ce que j'ai pu voir sur les forums, c'est pas forcement conseillé de faire comme ça mais personnelement je trouve ça très bien et très pratique.

 

je te conseille de faire pareil.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...