Comment développer un module Joomla?

10

J'ai regardé de loin pour un tutoriel à ce sujet, mais je ne trouve rien de satisfaisant. Comment créez-vous un nouveau module pour joomla?

En ce moment, j'utilise des modules HTML personnalisés partout dans mon code, et j'aimerais pouvoir accéder à PHP et les transformer tous en un module, mais je n'ai pas trouvé de tutoriel pour le faire. J'ai déjà modifié des modules installés mais je ne sais pas comment en faire un qui s'installera.

La documentation de Joomla est assez déroutante et après l'avoir lue plusieurs fois, j'ai abandonné. Quelqu'un peut-il m'aider à expliquer ce processus? Merci!

serakfalcon
la source

Réponses:

17

Apprendre le développement de modules Joomla

J'ai appris en étudiant et en personnalisant le noyau ou d'autres modules tiers.
Les modules en tant que concept sont plus simples que les composants (que nous pourrions dire sont 2 applications front-end / back-end) et sont conçus pour afficher une information.
Donc, si vous ouvrez le dossier / fichiers du module et commencez à lire le code, vous y arriverez probablement rapidement.

Exemple d'anatomie du module Joomla

Par exemple, vous pouvez ouvrir le module Derniers articles dans Joomla 3.2 et vérifier son code, tout en lisant les lignes ci-dessous. Dans le dossier du module, nous trouverons les 4 fichiers de base:

1. mod_articles_latest.php
2. helper.php
3. tmpl/default.php
4.mod_articles_latest.xml

  1. C'est mod_articles_latest.phple fichier principal des modules, celui qui est utilisé en premier lors de l'appel du module. Il initialise le module et inclut le helper.php, appelle la méthode de classe de l'assistant pour récupérer des données et inclut enfin le modèle du module ( default.php) pour afficher les données.

  2. Le helper.phpfichier est la "machinerie" du module (si on peut le nommer ainsi). Dans l'aide, nous créons la classe du module et ses méthodes pour récupérer les données. C'est l'endroit où l'on peut faire "parler" le module avec la base de données. La lecture du code dans le fichier d'aide de ce module, vous verrez qu'il contient la ModArticlesLatestHelperclasse , qui a une méthode:getList(&$params) .
    Dans le cadre de cette méthode, le module vérifie les paramètres d'arrière-plan du module et, éventuellement, crée la liste des articles qu'il renverra, en fonction de ces conditions. Notez que ce module utilise la JModelLegacy::getInstanceméthode pour renvoyer l' objet de modèle de contenu .

  3. Le default.phpest le modèle principal du module et chargé d'afficher le contenu du module. - Ici, nous construisons la sortie html, en utilisant les données que vous avez récupérées précédemment dans le mod_articles_latest.phpen appelant la classe du module. Il se trouve dans le dossier tmpl . * Notez que le fichier du module principal comprend le fichier de modèle avec la JModuleHelper::getLayoutPathméthode, qui vérifiera d'abord les remplacements de modèle.

  4. Enfin, mod_articles_latest.xmlje l'appellerais comme "l'ambassadeur" du module. C'est le fichier qui "présente" le module à Joomla lors de l'installation, il précise les fichiers qui seront copiés par l'installateur, et contient également les informations sur les paramètres du module qui sont utilisées par le gestionnaire de module, ainsi que des informations supplémentaires sur le module.

Ce sont les parties essentielles d'un module de base. Un autre aspect que vous voudrez peut-être considérer est le support de plusieurs langues. Cela peut être réalisé en utilisant des fichiers de chaînes de langue et de traduction de langue . Si vous auriez réussi jusque-là, pour créer un module de base, l'ajout de la prise en charge des langues devrait être assez simple.

FFrewin
la source
15

Avez-vous vu les tutoriels suivants dans la documentation joomla?

En particulier, assurez-vous de regarder tous les articles de la série.

Peter Wiseman
la source
3

Nous avons développé un module gratuit dans le même but Module PHP personnalisé pour Joomla CMS .

Vous devez créer un fichier PHP, par exemple login.php dans [racine du site Web] / modules / mod_customphp / files

  • Maintenant, pour utiliser ce fichier
  • Allez dans [backend] -> module-manager
  • Créer un nouveau module php personnalisé
  • Dans le paramètre, le fichier inclut la connexion
  • Cela rendra login.php dans le module.
Shyam
la source
qui répond à mon cas d'utilisation par rapport au php, mais ne répond pas à ce que je demandais réellement (dans mon cas, je dois enregistrer certains paramètres comme la couleur, etc. pour chaque utilisation du module, ce qui sera plus facile si je peux créer un nouveau module plutôt que juste accéder à php) mais merci pour l'astuce.
serakfalcon
Vous pouvez ajouter plus de paramètres au module et utiliser ces paramètres dans vos fichiers php.
Shyam
3

Vous pouvez copier un module existant dans une installation locale. Ensuite, vous le renommez comme vous le souhaitez. Vous devez également renommer les fichiers php et xml ainsi que les noms de classe php dans le code. Ensuite, il vous suffit de créer un fichier zip de votre module. Ce fichier zip que vous pouvez installer dans votre installation joomla.

Avez-vous besoin de plus de détails sur le changement de nom?

mouette
la source
Cela fonctionne dans une certaine mesure, et c'est souvent la façon dont je commence, mais est insuffisant pour gérer les chaînes de langue et les médias supplémentaires qui sont installés à différents endroits.
Peter Wiseman
@PeterWiseman Oui, vous avez raison, mais c'est un moyen simple et rapide de commencer.
seagul