samedi, 08 octobre 2022 00:00

Comment ajouter une position à un template ?

Écrit par
Évaluer cet élément
(0 Votes)

Toujours dans le cadre de mon projet professionnel sur Joomla, je suis amené à créer de nouvelles positions dans la template protostar, car je n'en ai pas assez !

J'entends d'ici les mauvaises langues me disant que je vais trop loin sur le nombre de positions sous Protostar, mais j'avoue que je suis un tout petit peu limité par certaines positions dans protostar, mais aussi (et surtout ! ) dans la template que vous avez sous les yeux sur laquelle est basé ce présent site que vous êtes en train de lire : Helium C'est la raison pour laquelle, à l'aide de personnes d'un groupe local de ma région Joomla sur Facebook, je me suis mis en quête de la création de nouvelles positions dans une template.
Cependant, n'ayant que protostar sous la main sur mon serveur web local de développement personnel, j'ai fait cette manipulation sous protostar.
 
C'est quoi une idée ?
 
Dans cet article, vous allez apprendre comment éditer les bons fichiers de Protostar pour créer de nouvelles positions dans une template. Je ne sais jamais si template est masculin ou féminin... alors pordonnez moi si je change régulièrement de déterminant.
 
Alors comment faut-il faire ?
 
Comme l'idée de cet article est bel et bien d'en faire un tutoriel, nous n'allons pas tout recréer d'un coup mais simplement rajouter une position à une template existante.
La démarche est relativement simple, une fois que l'on sait comment cela fonctionne. Il faut déjà voir et comprendre comment un modèle (une template) de présentation est constitué(e).
Avant de faire toutes vos modifications, bien entendu, faites une sauvegarde des fichiers que vous allez modifier.
 
  1. Dans un premier temps, rendez-vous dans votre répertoire du modèle protostar, et éviter le fichier index.php. Nous allons désormais ajouter une position. Si vous parcourez le fichier que vous êtes en train d'éditer, vous trouverez des balise jdoc:include. Ainsi, sélectionnez une ligne contenant cette balise, dupliquez-la ou copier collez là à l'endroit où vous souhaitez une nouvelle position. C'est dans ce fichier que l'on décrit où placer ses (nouvelles) positions.
  2. Dans le code que vous avez collé, il faut impérativement renommer la propriété name par un nom unique qui permettra à l'utilisateur dans l'interface d'administration de Joomla, de trouver de manière unique et sans ambiguïté, la nouvelle position. Vous devriez donc avoir ainsi un code de ce type :

    <jdoc:include type ="module" name="manouvelleposition" style="none" />

    Veuillez remarquer au passage que comme nous sommes bien en XML, il faut bien penser à fermer les balises à l'aide du /> en fin de ligne.  Enregistrez désormais ce fichier.
  3. Dans un deuxième temps, édité le fichier templateDetails.xml. dans ce fichier, rajoutez la description des positions que vous avez créées pour lmes retrouver dans la liste déroulanet dans la console d'admin de Joomla. Vous pouvez donc rajouter ces informations sous la forme de la ligne suivante :
    <position>position-102</position>
Vous aurez je l'espère compris, le chiffre derrière le tiret correspond à un identifiant. J'ai mis 102 car j'ai cherché à m'éloigner des informations déjà créées sans regarder la dernière position créée, ce qui m'a facilité la tache dans la console d'admin de Joomla pour trouver cette position facilement., Mais je vous assure qu'il vaut mieux regarder le dernier index existant afin de l'incrémenter d'une position. L'idée est bien d'avoir un nom unique de la position.
Enfin, et c'est là que j'ai actuellement un doute, j'ai créé sous cette position une div afin de pouvoir spécifier une classe et/ou un id pour pouvoir appliquer une feuille de style spécifique à ce module. Je le dis haut  et fort, ce n'est peut-être pas la meilleure méthode (d'encapsuler ça dans un div) mais elle a le mérite de fonctionner et permet surtout de spécifier une classe CSS ! Cependant, il existe peut êre une possibilité de spécifier une classe directement dans le fichier XML mais je n'ai rien trouvé à ce propos pour le moment.
Ainsi, je peux désormais appliquer un style à la DIV de ma template que je viens de créer. Voici donc un exemple de ce que j'ai créé pour avoir une nouvelle position dans ma template protostar :
 
<div id="position-100" class="ma-positionperso">
<jdoc:include type ="modules" name="position-100" style="none" />
</div>
 
Désormais, en éditant un module dans l'interface d'administration de Joomla, vous allez retrouver cette nouvelle position dans la liste déroulante position du module
Positions joomla
En voila encore un mystère Joomlesque levé !
Lu 686 fois Dernière modification le samedi, 08 octobre 2022 06:26