Les menus avec Joomla 1.5

10/09/2010

Rétrospective

Toujours à la découverte de joomla. Ma première séance m'a permis :

  • d'ouvrir un compte chez ovh et d'installer joomla 1.5 en quelques clicks
  • d'écrire un premier article.

les menus avec Joomla

Pour aller plus vite et pour éviter toutes les tribulations qui m'ont enfin permis de comprendre comment fonctionnaient les menus avec Joomla, je vous conseille d'aller directement sur la partie "Créer un nouveau menu avec Joomla".

 

Maintenant, j'aimerais créer l'arborescence du site ou le système de navigation. Je voudrais arriver à quelque chose de simple sur 3 niveaux : CMS > Joomla > la liste de mes articles (comme sur l'image ci-dessus) et là, je ne trouve pas ça évident si je m'appuies uniquement sur l'interface d'administration. Je décide donc de chercher sur la toile et je tombe sur le site :

http://www.joomlabc.com/tutoriels-joomla/formation-joomla/ajouter-des-me...

 

Le début des explications est relativement clair mais dès que l'on veut aller plus loin, il faut s'abonner : 90 jours pour 19.00 EUR.

Oh que je n'aime pas ça, faire du business sur un logiciel libre en appâtant le chaland avec des articles incomplets. Ce sera sans moi. Je vais me débrouiller autrement...

 

D'ailleurs, en me concentrant un peu, je commence à comprendre :

  1. Cliquez sur le menu : Menus > Gestion des menus
  2. Ici, nul besoin de créer un nouveau menu pour l'instant, cliquez plutôt sur l'icône "modifier les éléments du menu" du menu principal.
  3. Créez maintenant un nouvel élément du menu principal en cliquant sur l'icône + blanc sur fond vert
  4. Ici, on vous demande de sélectionner type d'élément de menu. Pour tester, j'ai choisi "Article > un article"
  5. Je ne peux pas valider car il faut obligatoirement attacher cet élément de menu à un article. Je vais donc en créer un nouveau que je vais appeler : les menus avec Joomla...

Ok, j'ai donc créé un nouveau menu que j'appellerai de niveau 2 et qui envoie vers un article : celui que vous lisez en ce moment.

Ce n'est pas vraiment ce que je voulais faire. Je vais essayer de comprendre plus en profondeur et je vous donne la suite...

 

 

Quelques heures + tard...

Sections et catégories

Bon, il faut se rendre à l'évidence, la question du système de navigation n'est pas simple avec joomla. En tout cas, ce n'est pas très intuitif de mon point de vue. D'après ce que j'ai lu à droite et à gauche, il va falloir s'habituer à parler en terme de "Section > Catégories > articles".

 

Dans mon esprit :

  • section = rubrique de niveau 1
  • catégorie = rubrique de niveau 2
  • article = article = page = fruit de l'arborescence.

Que ce soit dit, je n'aime pas quand un logiciel s'arroge le droit d'utiliser des termes français (ou de n'importe quel langage d'ailleurs) pour désigner des éléments qui lui sont propres. Je ne vois pas pourquoi une section ne serait pas intégrée dans une catégorie et vice versa... et puis les sections, ça me rappelle le service militaire ... c'est pas grave... je continue...

J'ai donc créé une section (Contenu > Gestion des sections) CMS et une catégorie (Contenu > Gestion des catégories) joomla et dans l'interface des articles, j'ai déclaré que l'article présent appartenait à la section CMS, catégorie joomla ... à vos ordres mon colonel!

 

La prochaine étape serait, dans ma logique militaire, que les menus soient capables d'afficher cette hiérarchisation de l'information. Je pars à la recherche d'infos et je reviens...

Quelques minutes + tard...

Menus ... la suite ...

Ca y est, j'ai compris comment les menus de base marchaient :

Créer un nouveau menu avec Joomla

En définitive, il faut comprendre que pour joomla,

  • un menu est un conteneur vide au départ : il faut donc ajouter des éléments de menu pour que quelque chose s'affiche,
  • un menu est également un "module". Une bonne partie du paramétrage des menus s'effectue donc dans "Extensions > Gestion des modules"
  • les menus sont complètement disjoints des sections et catégories. Si vous voulez qu'un élément de menu reprenne l'intitulé d'une catégorie et qu'il pointe vers une page affichant tous les articles appartenant à cette catégorie, il vous faudra créer un élément de menu ayant le même intitulé que votre catégorie à qui vous attribuerez le "type" : "Liste des articles d'une catégorie"

Concrètement , pour créer un nouveau menu, voici ce qu'il faut faire :

  1. Cliquer sur Menus > Gestion des menus > nouveau
  2. Aller sur la rubrique "Extensions > Gestion des modules" et cliquez sur la croix rouge dans la colonne "Activé". Bonjour l'ergonomie! Enfin, j'ai déjà vu pire en la matière...
  3. Cliquez sur votre menu toujours dans "Extensions > Gestion des modules" et paramétrer le correctement. Surtout, faites en sorte que le champ position corresponde bien à une zone définie dans votre template.
  4. Retournez sur Menus > Gestion des menus et cette fois ci, cliquez sur l'image :"Modifiez les éléments de menu" pour créer les parties visibles de votre menu (des liens)

En fait, quand on crée un élément de menu (un lien en pratique), il faut savoir d'entrée de jeu quelle va être la cible de ce lien. Ce pourra être par exemple :

  • un article
  • une liste d'articles appartenant à une catégories
  • une listes de catégories appartenant à une section
  • ...

Mon but initial était de créer un menu du même type que celui que vous voyez sur l'image ci-dessus.

 

 

La marche à suivre :

  1. créer des articles en les affectant dans les bonnes sections et les bonnes catégories
  2. Créer un nouveau menu
  3. créer un nouvel élément de menu dont le titre sera joomla et qui pourra afficher par exemple une liste d'articles appartenant tous à la catégorie joomla
  4. créer un nouvel élément de menu dont le titre sera "les menus avec joomla" et qui affichera l'article "les menus avec joomla". Attention, l'astuce simple mais que j'ai mis un certain temps à trouver, c'est qu'il faut déclarer que cet élément de menu a pour père l'élément de menu joomla.
    Cela se traduira dans le code par la création d'une sous-liste et donc par un décalage vers la droite (du moins dans les menus par défaut...).

Mission accomplie pour cette fois, au passage, je vous livre un détail :

Pour aller plus loin avec les menus (et pour répondre à Jehanon)

Pour l'un de mes clients, j'ai dû mettre en place un menu déroulant qui, pour optimiser l'ergonomie, se scinde en sous-menus. Impossible avec le module de base de joomla (mod_mainmenu). Après quelsques recherches, je suis tombé sur le module "mod_exmenu-j15". Il permet :

  • de scinder ou diviser des menus en plusieurs sous-parties
  • ajouter des styles à vos éléments de menus afin de mieux pouvoir les travailler avec vos css
  • Établir automatiquement des liens vers les sections, les catégories ... des éléments de contenu

Je n'ai pas testé toutes les possibilités de ce module car il y a beaucoup de paramètres et je pense qu'il faudrait y passer du temps avant de tous les maîtriser. Après pas mal de tâtonnements, je suis arrivé à faire ce que je voulais : scinder mes menus en sous-menus qui s'affichent dans une autre zone (div) de mon template.

Sur le fond, il me semble que le mécanisme important à comprendre est le suivant :

  1. vous créez vos menus comme à l'accoutumée avec joomla (module de base mod_mainmenu) dans la partie Menus > Gestion des menus de votre back office
  2. Dans la partie de Gestions des modules (Extensions > Gestions des modules) vous désactivez le module mod_mainmenu et vous utilisez à sa place mod_exmenu-j15.
  3. Vous paramétrez (bon courage) mod_exmenu-j15 de façon à ce qu'il vous crée les menus ou sous-menus de vos rêves

Partager sur mes réseaux