|
|
|
Table des matières
Créer un module pour Joomla 1.5Le 12/09/2007 Un module (aussi appelé box, boîte, encart, cadre, etc) est une petite portion du site contenant des informations qui sortent du cadre de la partie principale de la page (généralement occupée par un composant). Un module peut être affiché sur plusieurs pages et suivre le visiteur tout au long de sa navigation sur le site. Les menus, les bannières, les mentions légales, par exemple sont des modules. La structure d'un moduleNous allons utiliser comme exemple mon module Google Analytics, que vous pouvez télécharger sur cette page. Ce module permet d'ajouter à votre site Joomla le tracker de statistiques Google Analytics. Deux paramètres permettent d'indiquer au module votre identifiant Google Analytics et de restreindre l'appel de ce module à certain types d'utilisateurs seulement, afin par exemple que les administrateurs ne faussent pas les statistiques. Contrairement au paramètre “Niveau d'accès” de Joomla, il ne gère pas la hiérarchie des groupes, qui ne permettait pas d'origine d'isoler les Administrateurs. Un module basique est composé par convention de 4 fichiers :
Lorsque vous créerez votre propre module, vous devrez renommer mod_ganalytics.php et mod_ganalytics.xml en focntion du nom de votre module. InitialisationL'initialisation du module est confiée au fichier mod_ganalytics.php. Ce fichier devra effectuer au minimum les trois tâches suivantes :
Voici le contenu de notre fichier mod_ganalytics.php :
Dans cet exemple simple le module ne fait qu'appeler les éléments l'un après l'autre, mais c'est dans ce fichier que vous pourrez initialiser vos objets et aiguiller vers l'action à effectuer en fonction du contexte. Classe fonctionnelleVoici le contenu de notre fichier helper.php :
La classe fonctionnelle contient les différentes actions à effectuer, qui seront appelées par le module en fonction du contexte. La portée des objets est locale afin d'assurer une plus grande liberté et une meilleure sécurité. C'est pourquoi nous devons récupérer au besoin les objets globaux comme je l'ai fait avec l'objet $mainframe, dont j'avais besoin. Remarquez au passage l'utilisation de l'objet $params, qui permet de récupérer des paramètres que l'administrateur aura renseigné dans l'interface d'administration. Mise en formeVoici le contenu de notre fichier tmpl/default.php :
Ce fichier se contente d'afficher sous forme de code HTML simple le résultat des étapes antérieures. Ne perdez pas de vue le système de Templates de modules qui s'appliquera au moment du rendu de la page. La portée des variables est ici la même que dans le module et on peut donc utiliser directement les objets déclarés dans ce dernier, dans notre cas la chaîne $urchin. Le descripteur XMLLe descripteur XML est utilisé par Joomla pour installer et paramétrer votre module. On lui indique par ce biais les informations sur le module (Nom, auteur, description, etc), les fichiers qui le composent, et les paramètres qu'il prend en compte. Voici le contenu de notre fichier mod_ganalytics.xml :
Ces quelques lignes forment l'entête du descripteur XML. Remarquez l'utilisation de la balise <![CDATA]>, qui permet d'intégrer des caractères spéciaux HTML dans le nom d'auteur, ou la description par exemple. On trouve ensuite la section files, qui informe Joomla sur tous les fichiers qui composent le module : <files> <filename module="mod_ganalytics">mod_ganalytics.php</filename> <filename>index.html</filename> <filename>helper.php</filename> <filename>tmpl/default.php</filename> <filename>tmpl/index.html</filename> </files> Le fichier mod_ganalytics.php est le module lui même. L'attribut module qu'il comporte déterminera le nom du dossier dans lequel il sera stocké. C'est dans cette section que vous ajouterez les fichiers propres à votre module (Descripteurs de classes CSS, scripts client, objets graphiques, etc). Vous remarquerez la présence d'un fichier index.html dans chaque dossier, pour en empêcher le listage. Ces fichier peuvent êtres laissés vierges ou bien contenir cette simple ligne : <html><body bgcolor="#FFFFFF"></body></html>
La dernière section est la section params, qui définit les paramètres du module : <params> <param name="identifiant" type="text" default="" label="Identifiant" description="Identifiant du site à analyser au format UA- suivi de votre identifiant client, d'un tiret puis du numéro de votre site dans la liste." /> <param name="restriction" type="list" default="" label="Restriction" description="Permet de limiter l'appel de statistiques à un type d'utilisateur seulement."> <option value="all">Tout le monde</option> <option value="gst">Visiteurs</option> <option value="mbr">Membres</option> <option value="adm">Administrateurs</option> </param> </params> Voici les attributs communs à tous les types de paramètres :
Les type de paramètre est le même pour les Templates et les Modules, à savoir :
Les types list et radio nécessitent une seconde balise, qui fonctionne comme la balise HTML <option> : <param name="Parametre" type="Type" default="Valeur" label="Champ" description="Aide"> <option value="valeur 1">Nom de l'option 1</option> <option value="valeur 2">Nom de l'option 2</option> ... </param> Dans ce cas la valeur de l'attribut default correspond à la valeur de l'option qui doit être sélectionnée (si type=“list”) ou cochée (si type=“radio”) par défaut. Notez que le slash de fermeture « / » a disparu en fin de balise <param> au profit d'une balise de clôture </param>, comme l'exige XML. N'oublions pas de clôturer le descripteur XML du module : </install>
Voir aussi :
|
| Copyright 2012 David Mézière. Tous droits réservés. |