Développement Joomla

Actualité Informatiques

dawan.tv : webTV pour Geeks et Newbies

Développement Joomla - 19-05-2014

Le saviez vous ? En plus de fournir un outil administrable puissant, efficace et parmi les plus utilisés, Joomla vous offre la possibilité de développer vos propres templates, modules, composants et plugins.

Le développement des extensions ne s'éloigne pas en terme de technologie de celle de la base de Joomla créée avec Php/Mysql. Il faudra donc maitriser la programmation PHP et en particulier la Programmation Orienté Objet (POO). La POO que l'on trouve dans Joomla n'est pas très avancée mais la connaissance des notions de création d'attributs, de methodes, d'encapsulation et d'héritage sera nécessaire.

Des notions de XML seront un plus dans le développement de ces extensions. En effet Joomla s'appuie énormément sur le XML pour la création d'extensions ou encore pour mettre en forme les différents formulaires. Les exemples étant souvent plus parlant que des mots, voici par exemple le fichier XML d'un module sur lequel Joomla va s'appuyer, pour organiser les fichiers dans le CMS et mettre en forme un formulaire d'édition dans l'administration du module.

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="2.5.0" client="site" method="upgrade">
    <name>Hello</name>
    <author>Inconnu</author>
    <version>1.0.0</version>
    <description>Un simple module Hello World !</description>
    <files>         <filename>mod_helloworld.xml</filename>         <filename module="mod_helloworld">mod_helloworld.php</filename>         <filename>helper.php</filename>         <filename>tmpl/default.php</filename>     </files>
    <config>         <fields name="params">             <fieldset name="basic">                 <field name="message" type="text" default="Hello World" label="Message :" description="Texte du message" filter="string" />             </fieldset>         </fields>     </config> </extension>

Dans cette exemple, la balise <extension> permet, entre autres, de déclarer la nature de l'extension, ainsi que la version dans laquelle l'extension est valable. Ici cette extension déclare un module valable pour une version 2.5 de Joomla. Les premières balises <name>, <author>, <version>, <description> permettent de donner des informations sur le module et son concepteur. Enfin les balises <files> et <config> permettent respectivement de déclarer les fichiers qui composent le module et les champs administrables. C'est ici à partir des attributs de la balise <field> que Joomla va mettre en forme les champs de formulaire et leurs contrôles.

Cette utilisation de fichiers XML est valable pour l'ensemble des extensions (template, composant, module, plugin) d'une part pour informer le CMS des fichiers présents dans chacune de nos extensions, mais aussi pour permettre la personnalisation des extensions sans avoir à demander au développeur l'utilisation de SQL. Cette partie est entièrement prise en compte par le framework, qui va se charger d'enregistrer l'ensemble des valeurs dans un champs "params" de la table associée sous forme de chaine JSON.

Joomla nous facilite le travail, en nous évitant d'intervenir sur le SQL. Mais cela ne signifie pas qu'il est impossible de créer nos propres tables pour nos extensions. Joomla laisse la possibilité d'ajouter des tables et bien évidemment d'intervenir dessus. Il est même conseillé pour le développement de composant un peu plus complexe d'en faire usage.

Le composant reste un des éléments le moins facile à mettre en place. Non pas que sa conception soit plus difficile que les autres extensions, mais le composant demande à créer plus de fichiers. En effet parmi toutes les extensions, il est celui qui va respecter le plus le "design pattern" MVC (Modèle, Vue, Controleur).

Le composant va contenir :
- des fichier de vues, qui vont définir et composer l'interface,
- des modèles pour l'accès aux données enregistrées en base,
- des contrôleurs pour définir et répartir les données demandées.

Le composant contient également deux parties bien distinctes : une partie site ou front-office, et une partie admin ou back-office, dans lesquelles l'architecture MVC doit être respecter, ce qui fait une grande quantité de fichiers !

Malgré cette grande quantité de fichiers, vous pourrez lors de la création de votre composant en admin faire appel au principe du CRUD !

Qu'est ce que le CRUD ? Sous l'acronyme Create, Read, Update, Delete se cache les actions de création, de lecture, de modification et de suppression des contenus de notre composant. Le CRUD n'est autre qu'une des innombrables technologies mises à notre disposition par le Framework de Joomla. 

C'est grâce au Framework de Joomla qu'il est aussi facile de développer les extensions. Le Framework de Joomla est structuré en 3 couches:

  • Une pour la gestions des extensions (Module, Composant, Template)
  • Une pour le niveau applicatif (site, admin, …)
  • Une pour la base, dans laquelle on retrouve le "Core" de Joomla, mais aussi les extensions de type Plugins

Depuis la version 1.6 de Joomla, ce même Framework a été complètement dissocié du CMS pour offrir la possibilité au développeur de concevoir des applications complètement indépendantes de ce dernier. Le Framework porte de le nom de Joomla ! Platform.

Pour en savoir plus sur Joomla et le développement d'extensions, venez découvrir nos formations Joomla :

http://www.dawan.fr/formations/formations/opensource

rss Internet Audience CopyRight