Je continue ma petite série sur les templates utilisés pour les thèmes de DotClear 2. Je vous avais parlé dans ce premier billet des deux formes de balises spécifiques aux templates :
- celles qui sont sous la forme {{tpl:…}}
- celles qui sont sous la forme <tpl:…> et </tpl:…>
Ces balises sont remplacées par DotClear 2 par des instructions PHP qui seront ensuite traitées par le serveur.
La première forme est principalement utilisée pour générer du contenu comme par exemple l'affichage de la description du blog dans l'entête avec la balise suivante :
{{tpl:BlogDescription}}
Que va faire DotClear 2 avec cette balise ? Et bien il va simplement la remplacer par le code PHP suivant :
<?php echo context::global_filter($core->blog->desc,0,0,0,0,0); ?>
Ensuite le serveur interprètera cette instruction qui sert à récupérer la description du blog dans la base de donnée et à l'afficher[1].
La deuxième forme, composée de deux balises, une ouvrante (<tpl:…>
) et une fermante (</tpl:…>
), permet principalement de traiter un contenu HTML[2] seulement si une condition est remplie (balise de test) ou autant de fois que nécessaire (balise de boucle).
Deux exemples, un pour pour chaque type :
Imaginons que je souhaite afficher un texte uniquement si on se trouve sur la page numéro 1 du blog et pas sur les suivantes. Je vais utiliser le code suivant dans mon thème :
<tpl:PaginationIf start="1"> <p>Un joli texte affiché uniquement sur la première page.</p> </tpl:PaginationIf>
La première balise permet de tester une condition, ici Est-on au début de la pagination, c'est-à-dire sur la page 1 ?
. Ensuite nous trouvons le contenu qui sera traité uniquement si la condition est remplie, puis une balise qui indique la fin de ce qui est dépendant de la condition testée.
Imaginons maintenant que je souhaite afficher les 10 derniers billets d'une catégorie. Je vais utiliser le code suivant :
<tpl:Entries category="Flash" lastn="10"> … affichage du contenu du billet (titre, introduction, …) … </tpl:Entries>
La première balise permet de définir ce qu'on veut récupérer, ici les 10 derniers billets (lastn="10"
) de la catégorie Flash (category="Flash"
). Puis pour chacun de ces 10 billets, tout ce qui se trouve jusqu'à la balise de fin (</tpl:Entries>
) sera répété.
J'espère que c'est suffisamment clair pour tout le monde. Si vous avez tout compris jusqu'ici et bien vous savez tout (ou presque) du système de template de DotClear 2. Je vous parlerai bientôt de ce qu'on peut faire avec tout ça, des quelques précautions qu'il faut prendre et tout ça sur un exemple concret[3].
1 De mirovinben -
Toujours aussi clair...
Et comme ça m'ouvre l'appétit et me rend très gourmand... heu... vivement une doc exhaustive (avec tout ce qui est possible en paramétrage) des balises... hum... en français. A défaut il y a la doc officielle in english.
Je sais, ça fait pas très geek ni codeur fou mais mon anglais n'est pas à l'abri des contre-sens et faux amis.
Encore bravo !
2 De roro -
j'ai hâte de lire la suite en espérant avoir des réponses à mes nombreuses questions
- comment afficher une catégorie par jour, par mois, ... - comment faire un test sur la catégorie lorsque l'on est dans le contexte "post"
mille mercis pour votre travail