DotClear 2 et les templates (5)

Maintenant que nous avons vu l'essentiel de ce qu'il faut savoir à propos des templates de DotClear 2 nous allons faire un petit exercice pratique. Nous y verrons comment personnaliser un peu notre thème et au passage comment développer quelques petites fonctions très basiques en PHP.

Prêts ? Alors voilà l'énoncé de l'exercice :

J'ai prévu d'afficher un bloc particulier sur la page d'accueil. Ce bloc contiendra le dernier billet publié d'une catégorie précise ou à défaut, un texte fixe. Cette catégorie s'appellera Flash et ne servira qu'à gérer ce genre de petits messages et par conséquent ses billets ne devront pas apparaitre dans le flux normal[1].

Traduit en pseudo langage informatique cela donnera ceci :

si premiere_page alors
   si billet_flash existe alors
      afficher billet_flash
   sinon
      afficher un texte fixe
   fin_si
fin_si
afficher billets_non_flash

Par où commencer ? Ce traitement doit s'appliquer uniquement sur la page d'accueil donc on fera les modifications sur le fichier home.html du thème[2].

Dans ce fichier on trouve normalement un bloc template de cette forme :

<div id="main">
   <div id="content">
      <tpl:Entries>
…
      </tpl:Entries>
   </div>
</div>

Première chose à faire, surtout la plus aisée, exclure la catégorie Flash de la liste des billets affichés normalement. Pour cela il suffit de rajouter l'attribut category="!Flash" dans la balise <tpl:Entries>. Voilà le code modifié :

<div id="main">
   <div id="content">
      <tpl:Entries category="!Flash">
…
      </tpl:Entries>
   </div>
</div>

Vous aurez peut-être remarqué, dans le fichier home.html, un autre endroit où apparait la balise <tpl:Entries no_content="1">, dans la section <head>. Ici aussi il faut rajouter l'attribut category="!Flash" ce qui donnera :

 <tpl:Entries category="!Flash" no_content="1">

Dernière précision, le ! utilisé devant le nom de la catégorie sert à exclure les billets de cette dernière de la liste de ceux qui seront traités (affichés)[3].

Nous voilà donc avec une page d'accueil dont les billets de la catégorie Flash ne seront pas affichés. Prochaine étape, le bloc d'introduction sur la première page. Nous verrons dans le prochain billet comment déterminer si l'on est sur la première page ou pas et le problème — facile à résoudre — que cela peut poser pour la suite de notre exercice.

Notes

[1] Par contre j'ai choisi de laisser l'accès à tous ces billets particuliers dans la liste des catégories ou dans les archives.

[2] Si votre thème ne possède pas un tel fichier, il suffit de faire une copie de celui qui est présent dans le répertoire du thème par défaut (répertoire default) et de le copier dans le répertoire de votre thème.

[3] Vous pouvez si nécessaire mettre une liste de catégorie dont les noms seront séparés par une virgule. Tous les billets de ces catégories seront alors ignorés. Bien sûr la réciproque est vraie. En ne mettant pas le ! devant la ou les catégories, nous ne récupérerons que les billets de cette ou de ces catégories.

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/3111

Haut de page