Accueil Joomla Comment créer un module Joomla!


Comment créer un module Joomla!
Actualités - Joomla

Comment créer un module en php sous joomla! 1.5 ?

Cet article vous présente comment réaliser simplement un module en php pour Joomla!

A quoi servent les modules sous Joomla! ?

Les modules peuvent s'avérer très puissants sous Joomla, ce sont des blocs qui peuvent être affichés sur toutes les pages d'un site, ou qui peuvent  être affectés  uniquement à certains menus et qui peuvent disposer à différents endroits du site.

Vous pouvez créer des modules html classiques, via l'interface de joomla, mais pour créer des modules dynamiques, sans passer par du javascript, le PHP s'avère être un allié de taille.

Dans cet article, nous allons créer un module, appelé mod_hellojoom, qui affichera le message « Hello Mr joomla », histoire de se différencier du célèbre hello word utilisé dans les cours d'informatique.

De quoi se compose un module sous joomla?

Comme pour les templates (voir l'article "Comment créer un template joomla"), il faut premièrement définir un fichier xml qui indiquera à Jomla qu'il s'agit d'un module.

Dans notre cas, le fichier mod_hellojoom.xml, se composera de la manière suivante :


<?xml version="1.0" ?>
<install type="module" version="1.5.0">
  <name>module Hello mr joomla</name>
  <creationDate>17.03.2009</creationDate>
  <author>Thomas Missonier</author>
  <copyright>Copyright 2006 by moi</copyright>
  <authorEmail> Cette adresse email est protégée contre les robots des spammeurs, vous devez activer Javascript pour la voir. </authorEmail>
  <authorUrl>www.generation-webmaster.com</authorUrl>
  <version>1.0</version>
  <description>Affiche hello Mr joomla
  </description>
     <files>
         <filename module="mod_hellojoom">mod_hellojoom.php</filename>
   </files>
</install>


Ce fichier est facile à comprendre, la directive la plus importante est le tag filename qui définit le point d'entrée (fichier php) du module. Tout comme pour les templates, il est possible de definir des parametres qui seront affichés dans l'administration du module, et qui pourront être récupérés en php en utilisant les balises <params>.

Il nous reste donc à créer un fichier nommé mod_hellojoom.php de la manière suivante.

<?php
//Module qui ecrit hello mr joomla

//Empeche l'acces direct au fichier php
defined('_JEXEC') or die('Restricted access');
echo « Hello Mr Joomla »;
?>

Créez un repertoire mod_hellojoom, dans le repertoire modules de votre installation joomla et copiez y ces deux fichiers. Allez dans gestion des modules, créez un nouveau module en choisissant  le module créé, activez le.

Ça y est votre module est opérationnel et fonctionne, simple, n'est ce pas? Wink

A savoir que si vous faites appel à des bases de données dans votre module, vous n'avez pas à gérer la connexion à la base, celle-ci étant gérée par joomla, vous pouvez utiliser directement mysql_query($sql) par exemple!!

Dans le cas ou votre module contiendrait des variables envoyées par formulaire, et si vous utilisez l'url rewriting, je vous suggère d'utiliser la méthode POST au lieu de GET afin d'éviter des conflits.

Quelques fonctions utiles pour le développement en php de modules Joomla

Ajouter au début de votre source
global $mainframe;

Pour récupérer le titre de la page courante

$titre=$mainframe->getPageTitle ();

Pour récupérer l'url du site

$nom=$mainframe->getCfg('live_site');

Pour récupérer l'adresse complète de la page

$link=$nom."/".$_SERVER['REQUEST_URI'] ;

Pour récupérer les paramètres du modules

Dans votre fichier xml, avant </install>, définir une section params de la manière suivante
<params>
<param name="nomduparametre" type="text" default="valeurpardefaut" label="votre label" description="votre description" />
</params>

Pour récupérer en php les parametres :


$parametre=$params->def("nomduparametre","0");

Si ce dernier n'est pas défini, il prendra la valeur zéro.