Mettre à jour votre extension de Joomla! 1.5 à 1.6
-
Document typeTutoriel PHP
-
NiveauDébutant
-
Version Joomla1.5.x
-
Dernière modification28.07.11
-
Version PHP5.x
-
Créé parAdrien
-
Version MySQL4.x, 5.x
-
Le sortie de la première version stable de Joomla! 1.6 étant imminente, il est temps de s'attaquer à la mise à jour de vos extensions. Cet article s'adresse en particulier aux développeurs qui veulent supporter Joomla! 1.6 sans créer de package indépendant mais simplement en mettant à jour quelques éléments à partir d'un composant Joomla! 1.5.
Différentier son code pour Joomla! 1.5/1.6
Si vous comptez supporter Joomla! 1.5 et 1.6 sur le même package (ce qui est tout à fait possible), il vous sera à plusieurs reprises nécessaire d'éxécuter du code par rapport à la version de Joomla.
Comme dans les versions antérieures, la constante permettant de connaitre la version courante de Joomla est JVERSION.
1 |
if(version_compare(JVERSION,'1.6.0','<')){ |
Les fichiers de langue
Par simple soucis d'optimisation, des contraintes supplémentaires ont été ajoutées aux fichiers de langue pour qu'ils soient compatibles avec Joomla! 1.6.
Néanmoins, un fichier de langue Joomla! 1.6 sera compatible avec Joomla! 1.5 (pas l'inverse!), il est donc possible de ne garder qu'un seul fichier de langue (celui de 1.6) afin de ne pas alourdir le package.
Les clés des chaînes de caractères ne doivent contenir que des caractères alpha-numériques majuscule (ainsi que le underscore), les espaces ne sont plus supportés.
La traduction de la clé doit être entourée par des guillemets.
Ainsi un fichier de langue compatible Joomla! 1.5 comme celui-ci:
1 |
CAPTCHA TRY AGAIN=La vérification du code (captcha) a echoué. |
Devra être modifié en:
1 |
CAPTCHA_TRY_AGAIN="La vérification du code (captcha) a echoué." |
Les clés devront bien évidemment être également changées dans votre code.
Les fichiers principaux de traduction n'ont pas changé de localisation et se trouveront toujours dans les répertoires "language" du front-end ou back-end.
Néanmoins, le fichier de traduction du menu composant dans le back-end auparavant appelé "en-GB.com_moncomposant.menu.ini" doit maintenant être renommé en "en-GB.com_moncomposant.sys.ini" et les clés doivent correspondre exactement aux titres de vos menus (dans votre fichier XML).
Par exemple, le fichier en-GB.com_banners.menu.ini :
1 |
COM_BANNERS=Banner |
A été changé en fichier en-GB.com_banners.sys.ini :
1 |
COM_BANNERS="Banners" |
COM_BANNERS_BANNERS, COM_BANNERS_CATEGORY_ADD_TITLE... étant les titres des menus du fichier XML (qui ont été insérés dans la base de données lors de l'installation).
Pour avoir une extension compatible Joomla 1.5 et 1.6, vous pouvez insérer les deux fichiers "en-GB.com_moncomposant.menu.ini" et "en-GB.com_moncomposant.sys.ini" dans votre package.
Javascript
Certains changement ont été apportés à la gestion du javascript.
Le premier est le passage de Mootools 1.11 à Mootools 1.2.4. Changement que vous avez déjà pu préparer car les dernières versions de Joomla! 1.5 ont déjà la possibilité de tourner sous Mootools 1.2.4 grâce au plugin d'upgrade de Mootools.
Outre Mootools, les fonctions d'envoi des formulaires ont été modifiées et vous ne pourrez plus vous servir de la fonction "submitbutton"(pressbutton) pour exécuter une action lors de l'envoi du formulaire.
L'équivalent pour Joomla! 1.6 est :
1 |
Joomla.submitbutton = function(task) {...}
|
Ainsi, un code standard de validation sous Joomla! 1.5 :
1 |
function submitbutton(pressbutton) { |
sera maintenant écrit :
1 |
Joomla.submitbutton = function(task) |
XML des plugins et modules
La syntaxe des paramètres dans les fichiers XML a changé.
params a été renommé en fields
param a été renommé en field
et on voit apparaitre deux nouveaux éléments:
- "fieldset" qui va permettre de déterminer la position d'affichage des paramètres.
- "config" qui va englober tous les paramètres
Un XML valide Joomla 1.5 comme celui ci:

Devra être modifié pour être compatible Joomla 1.6 en:
Les deux écritures peuvent être incluses dans le même fichier XML ce qui le rendra compatible Joomla 1.5 et 1.6:

ACL
Joomla! 1.6 se dote d'un nouveau système pour gérer les ACL, beaucoup plus puissant et flexible que le précédent.
Vous pouviez récupérer le niveau d'accès de l'utilisateur sous Joomla 1.5 avec:
1 |
$my =& JFactory::getUser(); |
Puis ne charger que les articles autorisés en utilisant:
1 |
'SELECT ... FROM `#__content` WHERE access <= '.$group
|
Le chargement des niveaux d'accès sous Joomla 1.6 s'effectue de la sorte:
1 |
$my =& JFactory::getUser(); |
Et le chargement des articles en fonction du niveau d'accès:
1 |
'SELECT ... FROM `#__content` WHERE access IN ( '.implode(',', $groups) .')'
|
NB: le contenu de cet article n'est pas exhaustif et d'autres changements devront être effectués sur votre extension en fonction de ses fonctionnalités.
-
-
Catégories
-





Commentaires
En sachant que joomla 1.6 est desormais remplacé par sa version plus mature (v1.7), ... et que la version stable suivante (v2.5) qui arrive en janvier, sera la version definive et stable de la 1.6 et 1.7 ... il est peut-etre le temps de mettre à jour votre extension !
Enfin cela dépend du temps qu'il vous faut pour la mettre a jour, mais sachez que vos utilisateurs vont etre de moins en moins intéressé par votre v1.5 (car joomla 1.5 ne sera plus maintenu a partir d'avril 2012)
très bonne explication, mais pourriez vous m'expliquer comment créer vos propres composants joomla 1.6 ?
sachant bien que je suis un développeur PHP intermédiaire, utilisateur avancé en joomla mais débutant en développement joomla
Merci
Dans ce cas, doit-on mettre ou dans le fichier XML?
Superbe explications.
Si tu pouvais ajouter également ce qui change dans le fichier *.php comme par exemple qu'on n'écris plus :
$params->get mais $this->params->get
ou que "onPrepareConten t" a changé en "onContentPrepar e" dans la façon même d'écrire les fonctions :)
Merci.
Je viens d'installer joomla16 et je ne vois aucun tutoriel qui explique comment installer de nouveaux composants... Si vous aviez un lien vers lequel m'orienter.
merci
S’abonner au flux RSS pour les commentaires de cet article.
Ajouter un Commentaire