ludo Posted July 25, 2008 Share Posted July 25, 2008 Création de module sous PrestashopA. Création de module sous PrestashopA.1 Arborescence de PrestashopA.2 Type de modulesA.3 Design pattern A.4 Les traductions des modulesA.5 Le code de notre moduleB. Le Back-officeB.1 TerminologieB.2 Les ModulesC. Le front-officeC.1 PrésentationC.2 Ajout de méthode pour le front-officeC.3 Modifier sa positionC.4 Importer vos propres stylesD. Les méthodes génériquesD.1 GénéralitésD.2 Utilisation de ces méthodesD.3 Etude de CasVersion Wiki en cours sur http://wiki.psfrance.org creationdemodule_0-4.zip Link to comment Share on other sites More sharing options...
Kreasite Posted July 26, 2008 Share Posted July 26, 2008 C'est du bon travail ça, même si je ne me suis pas encore penché sur les Modules.Lors de la dernière présentations de la solution PrestaShop à Paris, les développeurs de module m'ont fait mal à la tête avec toutes leurs ligne de code.J'approfondirai ça quand j'aurrais plus de temps.CordialementDAV Link to comment Share on other sites More sharing options...
ludo Posted July 26, 2008 Author Share Posted July 26, 2008 Merci merci... surtout à Laurent (alias Kzone), l'auteur du tutorial!On a essayé d'etre le moins lourd possible afin de ne pas vous assommer avec de la technique pure et que des lignes de codes.On attend tous vos réactions et commentaires pour ameliorer ce doc !Pour ceux qui ont téléchargé une précédente version merci de reprendre cette version.PY et Julien (qui doivent bosser également sur un doc de ce type)... Avez-vous lu celui-ci et qu'en pensez-vous ? Link to comment Share on other sites More sharing options...
Pierre-Yves Posted July 28, 2008 Share Posted July 28, 2008 Salut Ludo Si tu veux réellement savoir, Julien et moi bossons effectivement ensemble, mais hélas pas encore sur un doc pour PrestaShop. Nous comptons sortir plusieurs projets qui nous sembles plus "importants" pour le moment!Sinon après avoir lu ton dossier, je le trouve plutôt facile à lire ce qui est un bon point. Il semble plus ou moins complet, même si je doute réellement qu'avec les bases à savoir sur un module un novice pourrait arriver à en créer un Mais c'est surement un tout bon début pour comprendre réellement le fonctionnement de ces ***** modules En tout cas, merci énormément de cette contribution! Link to comment Share on other sites More sharing options...
kzone Posted July 28, 2008 Share Posted July 28, 2008 ERRATA doc : chapitre : back-office De plus, il m’a fallu modifier la syntaxe du nom du répertoire module et du fichier éponyme et .php (bien entendu le nom de la classe également). + unmodule => blockunmodule unmodule.php => blockunmodule.php ... a vérifier donc !!! ... lors de l'installation du module , le nom est verifié valide par un eregi() , mais pour qu'il apparraise dans le tableau du back-office ,c'est la classe AdminModules qui fait fait l'appel à une méthode de la classe abstraite Module ... /* Scan modules directories and load modules classes */ $modules = Module::getModulesOnDisk(); en suivant les cailloux du petit poucet : public static function getModulesOnDisk() et public static function getModulesDirOnDisk()on s'apercoit que le listing du répertoire se fait : if (file_exists($moduleFile = _PS_MODULE_DIR_.'/'.$name.'/'.$name.'.php')) donc cqfd : le nom du module et le nom de la classe doit avoir le même nom puisqu'il cherche uniquement trucmodule/trucmoduleavec truc module = $name cela vaut avec ou sans block en début de nomle reste n'est que littérature et billevesée ( et billevesée dans une phrase c'est 50 points ... )++ps : il s'agit ici des modules présent sur le disque et pas obligatoirement installé :exclaim: Link to comment Share on other sites More sharing options...
Matthieu Biart Posted July 31, 2008 Share Posted July 31, 2008 Bonjour a tous!Excelente initiative ce tuto.Neanmoins je me permet de corriger quelques details qui me semblent tout de meme important :- dans la method __construct, le numero de la version doit se situer entre simples quotes, de mainiere a autoriser les version '1.0.0.1' par exemple. J'admets que nous possedons encore des modules avec $this->version = 1.0, ce qui est obsolete, et nous nous en excusons.- dans un module "de base" il est inutile de surcharger la method install() comme est fait dans le tuto. Faire un "si install ok alors ok sinon pas ok" n'est pas tres astucieux, autant laisser la Class Module faire l'install et renvoyer directement "ok" ou "pas ok"- le prefix "block" est purement indicatif, si votre module est un block vous pouvez tout aussi bien l'appeler "tetris" - le "{l s='My text' mod='my_module'}" n'est pas aborde :'-( (alors qu'element plus qu'important)- "Configuration ::get()nom_configuration" possede un espace avant l'operateur de resolution de portee (attention a la "parse error")- definir $message = "bonjour" est une mauvaise idee, pourquoi ne pas plutot utiliser $this->l() comme explique plus haut dans le tutorial ??- Db::getInstance()->Execute(ma_requete_qui_effectue_un_select_mysql) suivi d'un "mysql_fetch_array" est egalement une mauvaise idee (desole) puisqu'il existe deja Db::getInstance()->ExecuteS(ma_requete_qui_effectue_un_select_mysql) qui s'occupe de ca, et que deplus "mysql_fetch_array()" est depuis un moment deja "deprecated" au profil de "mysql_fetch_assoc()" - le switch($nombre_commande[0]) ne serait-il pas mieux directement en Smarty ? Cela ne fait que genere de l'affichage non ?- Et pour finir a mon avis le plus important, le rediger en anglais pour faire profiter nos amis non francophones Link to comment Share on other sites More sharing options...
kzone Posted July 31, 2008 Share Posted July 31, 2008 bonjouret merci pour toutes ses précisions importantes !je vais modifier le tutoriel en conséquence et ainsi remédier a ces "quelques" erreurs et approximationsJ'espère l'étoffer au plus tôt, mais pour cela il faut que je m'imprègne d'avantage du code prestashop ;-) Concernant la version en anglais , je ne peux rien promettre ... tout cela dépendra de mon emploi du tempsA nouveau n'hésitez pas à apporter vos commentaires , conseils et rapport d'erreurs ou d'approximationsC'est de cette façon que nous progresserons tous ensembleps : concernant le nommage des modules j'avais fait un "errata" ci-dessus reprécisant les modalités (apparemmentpas assez explicite)laurent Link to comment Share on other sites More sharing options...
shagshag Posted July 31, 2008 Share Posted July 31, 2008 Bonjour,Pourquoi faire les mises à jour du tutoriel en pdf et pas directement sur le wiki ?ça permettrai à tout le monde d'y apporter ses corrections sans que tu doives te taper tout le boulot. Link to comment Share on other sites More sharing options...
kzone Posted July 31, 2008 Share Posted July 31, 2008 reçu 5 sur 5 :coolsmile: Link to comment Share on other sites More sharing options...
Matthieu Biart Posted July 31, 2008 Share Posted July 31, 2008 ps : concernant le nommage des modules j'avais fait un "errata" ci-dessus reprécisant les modalités (apparemmentpas assez explicite) Nan c'est ma faute j'avais lu l'errata avant le tuto et donc je n'y ai pas repense apres coup.Derniere chose, prendre les screenshots au format png au lieu du jpg permettrai une plus grande lisibilite (il n'y aurai pas ces horribles artefacts ) Link to comment Share on other sites More sharing options...
Julien Breux Posted July 31, 2008 Share Posted July 31, 2008 Pour ajouter une petite touche personnelle sur ce qui a été dit...Pierre-Yves et moi même sommes entrain d'élaborer un projet complet concernant les modules afin de vous simplifier la vie, et pourquoi pas voir la naissance d'un générateur de modules qui sait ? De plus je rappel que le problème actuel est que le back-office est totalement figé. Nous allons donc voir en tant que externe ce qu'il est possible de faire.Il est certain que nous essayons d'agir à moindre coût, c'est à dire en touchant le moins possible au cœur.D'autre part, un projet* aurait consisté à faire tourner Prestashop sur une base de type PostgreSQL, mais malheureusement, la solution n'a pas du tout été prévue à cet effet... ([dev]le singleton DB aurait du être un factory/singleton et être plus flexible et pourquoi pas utiliser le vrai PDO ![/dev])Par ailleurs... encore un autre projet* aurait laissé pensé que l'on peut intégrer un CMS dans la solution, mais au vue de la gestion des URL internes de la solution, je pense qu'il vaux mieux le mettre sur la white-paper de la version deux... ([dev]pas d'url handler et de gestionnaire d'objet, aucun cache effectué mise à part le "faux" cache de smarty[/dev]) Enfin merci pour cette doc... et la version une sortie, au travail.Amicalement.* Dès que j'ai des vacances, je m'y met !PosgrestaShop V0.1 et SpitaShop V0.1 :-pEdit:- Correction d'orthographe (j'ai du mal avec le français) Link to comment Share on other sites More sharing options...
Pierre-Yves Posted July 31, 2008 Share Posted July 31, 2008 Pierre-Yves et moi même sommes entrain d'élaborer un projet complet concernant les modules afin de vous simplifier la vie, et pourquoi pas voir la naissance d'un générateur de modules qui sait ? Oups... Tu en dis trop!! :cheese: Link to comment Share on other sites More sharing options...
Julien Breux Posted July 31, 2008 Share Posted July 31, 2008 BIG EDIT:Mon précédent poste n'était pas réel, après beaucoup, beaucoup de champagne je perds la tête !MERCI (avec le ORDER BY importance):- PrestaTeam (surtout Philippe, Bruno et Mattieux)- Pierre-Yves- Vous Link to comment Share on other sites More sharing options...
kzone Posted August 1, 2008 Share Posted August 1, 2008 Mon précédent poste n‘était pas réel ... il est déjà en 4x3 dans tout Paris :coolsmile: Link to comment Share on other sites More sharing options...
Julien Breux Posted August 1, 2008 Share Posted August 1, 2008 Je me disait aussi, à Toulouse, les gens me regardaient bizarrement :-s Link to comment Share on other sites More sharing options...
ludo Posted August 13, 2008 Author Share Posted August 13, 2008 STOP ! On reprend la discution sur http://www.prestashop.com/forums/viewthread/4466/Developpement_et_graphisme/Creations_de_Module_sous_PrestashopAu menu... Correction du document et publication de la 2eme partie Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now