Comment placer un module dans un article ?
From Joomla! Documentation
Habituellement vous souhaiterez associer des modules à des articles d'une certaine façon. Les modules sont assignés à des positions de module et la position de module permet de le faire apparaître sur la page Web en fonction des possibilités proposées par le template. Cependant, Cependant, il est parfois utile d'avoir un module intégré dans l'article. Le noyau de Joomla propose trois façons de le faire : loadposition, loadmodule et loadmoduleid. Le plugin "Contenu - Chargement des modules" doit être activé.
Syntaxe :
- {loadposition position,[style]}
- {loadmodule mod_type,the title,[style]}
- {loadmoduleid moduleId}
loadposition
Pour insérer un module dans un article, vous devez publier le module en lui assignant une position et charger cette position dans l'article comme suit :
- Créez un module et définir sa position comme étant myposition. myposition peut être n'importe quelle valeur qui n'entre pas en conflit avec une position de module déjà existante dans le template. Au lieu de sélectionner une position dans la liste déroulante, renseignez dans le champ position myposition et appuyez sur entrer.
- Assignez le module à Tous les éléments de menu. Cela permettra de s'assurer qu'il apparaît toujours quelque soit la façon dont le visiteur aura atteint l'article. Le module n’apparaîtra pas tant que vous n'aurez pas placé la commande permettant de charger le module dans un article.
- Modifiez les articles sur lesquels vous souhaitez voir apparaître le module et insérez le texte {loadposition myposition} dans l'article, à l'endroit où vous voulez que le module soit placé.
loadmodule
Une alternative à la technique "{loadposition xx}" est la variante "{loadmodule yyy}" qui est gérée par le même plugin.
Dans ce cas, le plugin va rechercher le premier module dont le type correspondra à la chaîne de caractères : 'yyy'. Ainsi, vous pouvez charger un module "mod_login" en plaçant {loadmodule mod_login} dans votre texte. Si vous souhaitez charger une instance spécifique d'un module, parce que vous avez, par exemple, différents modules de connexion comme Login 1, Login 2, etc. vous devez alors utiliser {loadmodule mod_modType,modTitle} avec mod_modType égal à mod_login et modTitle le nom/titre de votre instance de ce module. Dans l'exemple ci-dessus, vous insérez {loadmodule mod_login, Login 2} pour que le module intitulé Login 2 soit affiché. Vous pouvez également ajouter un style de rendu du module. Pour ce faire, ajoutez le style comme troisième paramètre comme dans {loadmodule login,Login 2,xhtml}. Si vous n'ajoutez aucun paramètre, le style "none" sera utilisé.
loadmoduleid
Depuis la version 3.9.0 de Joomla ! une alternative à {loadposition xx}
et {loadmodule yyy}
est la variation de {loadmoduleid z}
qui est géré par le même plugin.
Dans ce cas, le plugin recherche le module dont le nom est id
correspond au nombre z
. Vous pouvez donc charger le module avec l'identifiant 200 en plaçant {loadmoduleid 200}
dans votre texte. Cette variante ne "comprend" pas les paramètres additionnels tels que l'élément de paramètre style
.
Editor Button (since Joomla! version 3.5)
If the editor-xtd plugin "Button - Module" is activated you can use the editor button "Module" to insert above described tags more easily into the editor text. Since Joomla! 3.9 also the loadmouleid
variant.
Les modules dans les modules
Il est possible dans Joomla! 2.5+ et Joomla! 3.x+ d'inclure un module à l'intérieur même d'un module "Contenu personnalisé" en utilisant la même technique des plugins de contenu pour l'intégration dans un article.
Pour ce faire, l'option Plug-ins de contenu doit être activée comme le montre cette capture d'écran.
N'oubliez pas que vous risquez de rencontrer des problèmes de formatage, car le "chrome" du module "HTML personnalisé" entourera le "chrome" du module inclus, ce qui pourrait avoir des effets indésirables sur le formatage ou la mise en page. C'est la raison pour laquelle le bouton "Module" de l'éditeur n'est pas disponible dans les modules de type "Personnalisé".