edito-cinnk-magazine-decembre-2015

6 mois déjà !

Avec ce numéro 5 (le sixième), Cinnk magazine à 6 mois !

Le lien de menu, colonne vertébrale de Joomla!

S’il y a quelque chose de central dans Joomla, c’est bien le lien de menu ! Pour mieux en comprendre l’importance, voici une petite infographie qui retrace très schématiquement ce qui se passe lors de l’appel d’un article dans Joomla! [Pour simplifier, nous avons évacué la gestion des langues et autres petits (hum, hum) détails…]

Le lien de menu, colonne vertébrale de Joomla!

L'appel du contenu

Celui-ci est loin de suivre un azimut brutal, il va glaner sur son chemin les différents éléments qui vont constituer la page. Car comme vous le savez, les pages de votre site n’existent pas en tant que telles, mais se constituent lors de leur convocation.

Si j’appelle la page actualités de mon site, par le bais d’un lien de menu de type blog de catégorie, paramétré pour afficher un article en pleine largeur et deux intro, affichés par date, ce sont les trois derniers articles qui vont s’afficher sur la page. Mais si je n’ai que deux articles disponibles, la page n’affichera que deux articles. Miracle du CMS qui construit les pages en fonction de ma requête et de ce qui peux y répondre !

Un appel, plusieurs possibilités

On peut dégager trois cas de figure :

  1. Il existe un lien de menu
  2. Il existe un lien de menu apparenté
  3. Il n’existe pas de lien de menu

lien-de-menu-joomla-illus-01

Dans le cas A, l’appel a lieu directement par un lien de menu et nous avons donc le fameux itemid. C’est-à-dire l’identifiant numérique unique du lien de menu dans la base de données. Joomla va donc aller chercher ce qui est assigné à ce lien de menu : template, modules…

Dans le cas B, l’appel est fait par un lire la suite par exemple. N’ayant pas d’itemid au départ de l’appel, Joomla va aller chercher s’il existe un lien de menu dans la base de données vers l’article appelé, ou même un lien vers la catégorie de l’article. Comme il y a un lien de menu "actualités" qui mène vers cette catégorie, Joomla va donc aller chercher ce qui est assigné à ce lien de menu que j’appellerai apparenté : template, modules…

Dans le cas C, nous avons ni lien de menu au départ, ni lien de menu apparenté. Que va donc faire Joomla ? La réponse est simple : il va se servir de l'ItemId origine de la page où le clic a eu lieu ! Joomla va donc afficher l’article dans la mise en page qui est celle de la page de l’appel.

Cela explique pourquoi mon joli module de slider qui est assigné uniquement en page d’accueil, est encore là quand on a cliqué sur le lire la suite d’un article lui aussi en page d’accueil. Cet article et sa catégorie ne sont pas desservis par un autre lien de menu : Joomla reste dans la mise en page existante lors du clic.

En route vers le rendu de la page

  1. Le clic a lieu depuis : A un lien de menu, B un lire la suite avec un lien de menu apparenté ou C une liste d'articles. 
  2. On requête la base de données
  3. On récupère le template assignée à l'ItemId
  4. On extrait les positions de publications de module dudit template
  5. On récupère les modules publiés, avec vérification des droits, sur cet ItemId
  6. On récupère le contenu de l'article, avec vérification des droits de lecture

Et on affiche la page telle qu'elle doit être.

Le lien de menu joomla, illustration 02

Comment pallier à ce souci ? C’est tout simple, en créant un lien de menu vers la catégorie dans un autre menu que le menu principal, menu qui d’ailleurs peut ne pas être affiché et ne servir qu’à gérer les assignations de modules et de template

Notez cet article:
6
Quoi de neuf ce mois-ci ?
Frameworks de templates, quoi de neuf, docteur ? D...

Commentaires 4

 
toffffe le mardi 1 décembre 2015 11:59

Salut, très bel article, malgré tout la solution de lien caché est souvent pénible à reproduire, j'y préfère de loin une petite extension pour gérer la gestion avancée des modules dans joomla http://www.stylitek.com/tutoriel-joomla/gestion-avancee-de-l-affichage-des-modules-joomla.html avec un module tel que celui-ci de nombreuses solutions s'ouvrent à vous, dont la résolution de l'affichage des modules en page d'accueil sur les pages n'ayant pas de lien de menu

Salut, très bel article, malgré tout la solution de lien caché est souvent pénible à reproduire, j'y préfère de loin une petite extension pour gérer la gestion avancée des modules dans joomla http://www.stylitek.com/tutoriel-joomla/gestion-avancee-de-l-affichage-des-modules-joomla.html avec un module tel que celui-ci de nombreuses solutions s'ouvrent à vous, dont la résolution de l'affichage des modules en page d'accueil sur les pages n'ayant pas de lien de menu
Christian Bardin le mardi 1 décembre 2015 12:58

Merci Christophe !
L'idée de cet article est de schématiser la manière dont Joomla! gère le rendu des pages, mais si on a beaucoup de modules en effet, "Advanced Module Manager" est une extension super pratique !
Simon a d’ailleurs traduit la doc officielle dans cet article : http://cinnk.com/joomla/cms/extensions/g%C3%A9rer-les-modules-joomla-avec-advanced-module-manager

Merci Christophe ! L'idée de cet article est de schématiser la manière dont Joomla! gère le rendu des pages, mais si on a beaucoup de modules en effet, "Advanced Module Manager" est une extension super pratique ! Simon a d’ailleurs traduit la doc officielle dans cet article : http://cinnk.com/joomla/cms/extensions/g%C3%A9rer-les-modules-joomla-avec-advanced-module-manager
PieceOfCake le mardi 1 décembre 2015 14:10

Et c'est très bien expliqué, sur et certain que des tas de débutants ou déjà bien avancés vont y trouver des réponses à des questions qui reviennent souvent sur les forums

Et c'est très bien expliqué, sur et certain que des tas de débutants ou déjà bien avancés vont y trouver des réponses à des questions qui reviennent souvent sur les forums
Christian Bardin le mardi 1 décembre 2015 14:16

Merci PieceOfCake !

Merci PieceOfCake !
Déjà inscrit ? Connectez-vous ici
Guest
samedi 18 novembre 2017
Si vous souhaitez vous inscrire, veuillez saisir un nom d'utilisateur, mot de passe et nom.

Image Captcha

Sur ce site, nous utilisons des cookies.