How to control module display when linking to an article with no menu item/fr
From Joomla! Documentation
Normalement, vous contrôlez les modules qui s'affichent sur une page en affectant des modules à un élément de menu. Cependant, dans certains cas, il se peut que vous ne disposiez pas d'un élément de menu correspondant à chaque page de votre site web.
Lien d'un article à l'autre
C'est notamment le cas lorsque vous créez un lien vers des articles à partir d'un autre article. Par exemple, vous pouvez avoir des articles sur votre site qui ne seront pas associés à des éléments de menu spécifiques. Au lieu de cela, vous pouvez créer des liens vers ces articles à partir d'autres articles. Dans ce cas, vous n'aurez pas la possibilité d'affecter des modules à des articles individuels.
Vous pouvez toujours contrôler quels modules s'affichent sur quels articles en définissant manuellement la partie Itemid de l'URL du lien. Supposons, par exemple, que vous ayez cinq "types de page" différents qui s'affichent, en fonction de l'article. Chaque "type de page" aura sa propre combinaison de modules affichés. Voici comment procéder :
- Créez un menu appelé "menu caché" et ajoutez un élément de menu pour chacun des cinq "types de page". Le type d'élément de menu sera une mise en page d'article.
- Assurez-vous que les éléments du menu sont "publiés".
- Ne créez pas de module "mod_mainmenu" pour le menu caché. Ce menu ne sera jamais affiché sur votre site, donc aucun module de menu n'est nécessaire.
- Attribuez les modules souhaités à chacun de ces éléments de menu de la manière habituelle.
- Notez les numéros d'identification de chacun de ces cinq éléments de menu. Le numéro d'identification est indiqué dans l'écran Gestionnaire des éléments de menu.
- Créer le lien vers l'article, en utilisant l'un des éléments suivants :
Créez le lien manuellement en copiant un lien Joomla normal au format index.php?option=com_content&view=article&id=xx&Itemid=yy
, où xx est l'ID de l'article souhaité (à partir du gestionnaire d'articles) et yy est l'ID de l'élément de menu "type de page" souhaité (à partir du gestionnaire d'éléments de menu).
- Utilisez une extension telle que JCE editor ou Linkr pour créer le lien à partir de l'éditeur. Créez un lien vers l'article souhaité et ajoutez manuellement "&Itemid=yy" au lien, où yy est l'ID de l'élément de menu "type de page" souhaité.
- Tout composant SEF, tel que sh404SEF ou JoomSEF, qui vous permet de créer des URL personnalisées fonctionnera également. Lorsque vous créez un élément de menu pour l'un des 5 "types de page" qui est lié à un article arbitraire (par exemple un article factice), il suffit de copier l'URL non-SEF de la page de création de l'élément de menu. Il s'agit du "lien". Ensuite, dans votre composant SEF, créez une URL SEF personnalisée avec le lien que vous venez de copier, modifiez seulement le &id=xx où xx est le numéro d'identification de l'article souhaité et ajoutez le &Itemid=yy où yy est le numéro d'identification de l'article de votre "type de page" personnalisé. Si cela ne fonctionne pas, assurez-vous que vous avez assigné les modules à votre "type de page" personnalisé dans le gestionnaire de modules.
Lorsque ces liens sont affichés, les modules assignés à l'élément de menu correspondant à Itemid=yy s'affichent avec l'article correspondant à id=xx. Notez que vous pouvez toujours utiliser l'option URL SEF de Joomla. Dans ce cas, l'URL sera convertie au format SEF, mais l'Itemid correct sera toujours utilisé.
Lien vers un article à partir d'un module
L'exemple ci-dessus part du principe que vous avez le contrôle de l'URL utilisée pour le lien. Cependant, dans certains cas, le lien est créé automatiquement pour vous et vous n'avez donc pas la possibilité de modifier manuellement l'Itemid de l'URL. C'est le cas par exemple des modules "Dernières nouvelles" et "Les plus populaires", qui fournissent tous deux automatiquement des liens vers des articles. Dans cette situation, vous pouvez toujours contrôler les modules qui s'affichent lorsque vous créez un lien vers un article. Voici trois approches possibles.
- L'astuce la plus simple consiste à assigner les modules aux éléments de menu "Tous". De cette façon, ils s'affichent quoi qu'il arrive. Mais vous devez être d'accord avec le fait d'avoir les modules sur chaque page.
- Une autre possibilité consiste à utiliser un élément de menu caché avec une mise en page de section ou de catégorie. Vous pouvez le faire dans un menu "caché" et ne pas créer de module de menu pour ce menu "caché". Vous disposez ainsi d'un élément de menu qui vous permet d'affecter les modules souhaités à chaque mise en page. Si vous n'avez pas de présentation pour l'article auquel le lien renvoie, Joomla essaiera de trouver un élément de menu "similaire" et utilisera les modules de cet élément. Par exemple, si vous créez un élément de menu caché avec une mise en page de section et que vous affectez les modules à cet élément de menu, lorsque vous créez un lien vers un article dans cette section, les modules affectés à la mise en page de la section cachée s'afficheront. Cela fonctionne également pour les mises en page de catégories. Il existe une hiérarchie pour cela, comme suit :
- Mise en page de l'article
- Catégorie Mise en page du blog
- Présentation de la liste des catégories
- Notez que, si vous avez activé le module Breadcrumbs, ces éléments de menu cachés s'afficheront dans le breadcrumbs. Cela signifie qu'un utilisateur pourra naviguer vers l'élément de menu caché (par exemple, la présentation de la liste des sections) à partir du lien dans le fil d'Ariane.
- Le moyen le plus sûr de résoudre ce problème (mais aussi le plus long) est de créer un élément de menu distinct pour chaque article. C'est le plus gros travail, mais cela vous permet de contrôler complètement les modules affichés pour chaque article.
Contrôle de l'affichage du module à l'aide d'une extension
Une autre approche du problème consiste à afficher les modules à l'aide d'une extension qui permet de contrôler en détail l'emplacement d'affichage d'un module. Une liste des extensions de gestion des modules est disponible sur le JED (Joomla Extension Directory).