Création template joomla : position des éléments

14/09/11

Dans l'article précédent, nous avons vu comment créer un template joomla simpliste qui affiche du contenu et les éléments de navigation.

Penchons nous maintenant sur la logique joomla pour positionner les différents éléments (menus et module de gestion de texte dans un premier temps).

index.php : indiquer quel module afficher dans quelle zone

Selon cette logique, il va falloir agir à 2 niveaux :

  1. sur le fichier index.php
  2. dans l'interface de joomla : extension > gestion des modules

Je vous propose de remplacer le corps de votre fichier index.php par :

<body>
<div id="haut">CONTENU BANNER</div>
<div id="gauche"><jdoc:include type="modules" name="nav_horiz"  /></div>
<div id="centre"><jdoc:include type="component" /></div>
<div id="droit">CONTENU DROIT</div>
<div id="bas">CONTENU PIED DE PAGE</div>
</body>

Si vous écrasez votre ancien fichier index.php par celui-ci, vous vous rendrez compte que le menu ne s'affiche plus.

C'est normal : en donnant à l'attribut name la valeur nav_horiz, vous imposez au système de n'afficher ici que les modules qui sont déclarés devoir s'afficher dans la zone appelée "nav_horiz".

Pour voir apparaître votre menu, il va falloir aller dans extension > gestion des modules puis modifier le menu de votre choix en lui affectant le bon nom de position :

Et voilà le travail...même si pour l'instant, je ne sais pas comment faire pour que dans le menu déroulant "position", apparaisse notre intitulé de zone "nav-horiz"...

templateDetails.xml

Notons au passage qu'il ne peut pas être mauvais d'ajouter dans votre fichier templateDetails.xml les lignes suivantes :

<positions>
<position>le_bandeau</position>
<position>nav_horiz</position>
<position>colonne_gauche</position>
<position>rectangle principal</position>
<position>colonne_droite</position>
<position>pied_de_page</position>
</positions>

Si vous ne le faites pas, votre template n'apparaîtra pas dans l'interface de gestion des templates

Partager sur mes réseaux