Agence web et solutions IT, Experts Symfony contact@avanim-prod.com

Cacher vos menus selon la langue avec Joomla et MetaMod

3 mars 2011 jravouna Joomla 1.5 Étiquettes : , , , , 1 Comment

Voilà un problème récurent auquel il existe une solution !

Beaucoup de webmaster cherchent à afficher un menu propre à chaque langue ou à ne pas afficher un module ou un élément de menu sur certaine langue.
Pour ce faire il existe un meta-module Joomla qui se nomme « metamod ». Ce meta-module, permet d’afficher un module (tel qu’un menu par exemple) en fonction de beaucoup de critères différents.

Voici ce que l’on trouve sur le site officiel de MetaMod :

Suggestions d'utilisation :
Faire apparaître des modules à certains moments de la journée,
Donnez aux modules des dates de début et de fin d'affichage,
Contrôle des modules basés sur le texte dans le composant central de la page, ou par méta mots-clés ou des méta-description de la page. Si un mot ou une expression est trouvé ... un module apparaît! (nouveauté de cette version!)
Afficher un module particulier pour un certain nombre de pages vues par un visiteur non enregistré, puis passer à un autre module
Modules de contrôle, tels que FacileForms (montrer un formulaire différent selon les endroits où on se connecte dans le monde, etc)
Voir différents modules de connexion à des personnes de différents pays
Afficher un module si un utilisateur est connecté la première fois sur votre site (par exemple, pour du support technique)
Permuter des blocs de modules sur l'ensemble et à l'extérieur (un metamod peut contrôler une série d'autres modules)
Faire apparaitre et disparaitre des modules, ou d'autres modules supplémentaire, pour les différents utilisateurs, sur la base d'un type d'utilisateur, un groupe ou un même identifiant
Faire un module qui disparaît une fois que le visiteur est connecté (il n'y a pas d'autre façon de faire dans Joomla!)
Modules de contrôle selon les paramètres de langue dans le navigateur de l'utilisateur
Modules de contrôle en fonction de l'utilisateur type de navigateur (par exemple un module pour Firefox contre Internet Explorer)
Voir les différents modules en fonction de ce que la section et / ou de la catégorie / l'article principal sur la page  (c'est puissant!)
Faire apparaître les différents modules sur des pages différentes, pour de nombreux composants tiers:

VirtueMart : Faire apparaître les différents modules sur les différents pages de virtuemart (par exemple, la page produit, la catégorie des listes, inscrivez-vous, le check-out, panier d'achat, ou à tout moment un produit est présenté en détail) 

JReviews : faire apparaître les différents modules lors de la visualisation de pages de catégories différentes 

JoomFish : Afficher un menu différent sélectionné sur la base de la langue du front-end 

Community Builder : Afficher des modules basés sur les informations dans le profil de l'utilisateur connecté (par exemple, leur code postal) 

et beaucoup, beaucoup d'autres façons de faire...

Nous allons donc prendre un exemple :

Nous désirons avoir un menu Francais comme suit : Accueil, element1, element2, contact
et un menu Anglais comme suit : Accueil, element3, element4, contact

1/ Configuration des menus

Tout d’abord, nous allons configurer les menus car metamod va nous permettre de selectionner les parties de menu à cacher.

Nous créons donc :
Menu 1 : Accueil
Menu 2A : element1, element2
Menu 2B : element 3, element4
Menu 3 : contact

Une fois cela effectué, nous publions normalement les Menu1 et Menu3 (qui ne changerons pas).
Il faut également publier les Menu 2A et Menu 2B mais cette fois ci indiquer un emplacement qui n’existe pas. Cliquez sur le select box de Joomla et entrer un nom quelconque. Il est important à ce niveau de bien relever les ID des modules.

2/ Configuration de metamod

Nous allons donc installer metamod. Dans les modules de Joomla, installer la dernière version du meta-module.
Ensuite il vous faut expliquer à meta mod l’affichage des modules. Pour cela il vous faudra insérer un « check » de la langue dans les parametres php de metamod :

if ( $language  == 'fr' ) {
     return ID_MENU2A ;
}else{
     return ID_MENU2B;
}

Et placer votre meta mod dans la position de votre choix, et le tour est joué !

1 Comment

  1. HERVE 6 années Répondre

    Et pour ne le mettre que sur la page d’accueille vous avez une solution?

    Merci