Après avoir vu grossièrement comment fonctionne un module sous Magento, nous allons nous attacher dans cet article à en développer un.
Première étape : définir sa fonction
Bon, on va pas faire très compliqué pour ce 1er module ni dans le très original: notre module va afficher « Hello World ! » lorsqu’il sera appelé.
Deuxième étape : préparer son environnement
Préparer son environnement, ça veut dire qu’avant de se mettre à coder quoi que ce soit, on va créer les répertoires nécessaires et paramétrer Magento.
Avant toute chose, il faut vous décider pour l’identifiant du module: quel Namespace, quel Nom?
Pour moi, ce sera Nosymena/Helloworld.
Remarque: pour éviter des heures de débogage inutiles, je vous conseille de respecter la règle suivante: pas de majuscule dans l’identifiant de votre module, sauf en première lettre !
Nous avons déjà vu précédemment que les fichiers d’un module se répartissent entre 2 dossiers:
- app/code pour les scripts PHP et XML sensés représentés l’intelligence du module et les accès aux données
- app/design pour les layouts et templates sensés organiser le visuel du module
Voici donc les répertoires à créer (attention aux minuscules/majuscules !) :
Dans le dossier /app/code/local:
Nosymena/Helloworld/Block Nosymena/Helloworld/Helper Nosymena/Helloworld/Model Nosymena/Helloworld/controllers Nosymena/Helloworld/etc Nosymena/Helloworld/sql
Dans le dossier app/design/frontend/default:
nosymena/layout nosymena/template
Remarquez qu’en créant nos dossier layout et template à cet endroit là, nous avons par la même occasion ajouté un thème nosymena à l’interface par défaut.
Voilà, nos répertoires sont créés. Nous ne les utiliserons peut-être pas tous, mais ce n’est pas grave.
Passons au paramétrage de Magento.
Comme nous avons créé un nouveau thème de l’interface par défaut, il va falloir l’activer.
Dans le backoffice de Magento: menu Système => Configuration => Design:
- vérifiez que l’interface est bien positionnée à default. Si elle ne l’est pas, au lieu de créer vos dossiers dans app/design/frontend/default , créer les dans app/design/frontend/l-interface-indiquée-dans-votre-backoffice.
- dans le thème « par défaut », saisissez « nosymena ».
L’autre paramétrage important lorsque vous êtes en phase de développement consiste à supprimer le cache de Magento. Si vous ne faites pas ça, vous allez passer un temps fou à chercher des bugs qui n’existent pas…
Dans le backoffice de Magento: menu Système => Gestion du cache. Désactivez le cache des 4 premiers (CONFIG, LAYOUT, BLOCK, TRANSLATE).
Voilà, votre environnement est prêt, nous pouvons passer à l’étape suivante.
Troisième étape : indiquer à Magento l’existence de votre module
C’est assez simple. Il suffit de créer un fichier XML, appelé Nosymena_Helloworld.xml, avec le contenu suivant:
<?xml version="1.0"?>
<config>
<modules>
<Nosymena_Helloworld>
<active>true</active>
<codePool>local</codePool>
</Nosymena_Helloworld>
</modules>
</config>
Et de le déposer dans le répertoire /app/etc/modules.
- <Nosymena_Helloworld> : il s’agit de l’identifiant de votre module, mais aussi de son chemin d’accès (Magento remplace le caractère ‘_’ par ‘/’).
- <active>true</active> : active le module
- <codePool>local</codePool>: indique à Magento où chercher votre module:
- local : pour chercher dans /app/code/local
- community : pour chercher dans /app/code/community
- core : pour chercher dans /app/code/core
Avec ce petit fichier XML, Magento est donc informé qu’il doit activer votre module qui se trouve dans le dossier :
/app/code/<codePool>/<Namespace>/<Nom>/
Vous pouvez dès à présent vérifier la prise en compte de votre module par Magento: rendez vous dans le menu Système=>Configuration => Avancé => Avancé. Vous devriez voir apparaître votre module dans la liste.

Revenir au Tutoriel sur les Modules Magento