Quelques balises Dotclear2 : les balises "boucle"
| lundi 12 novembre 2007 | 02:50 | Logiciels Libres |
Après avoir vu quelques balises "en ligne", nous allons nous attarder sur celles de type "boucles" et "test" pour la création des pages dotclear 2. Ces balises vont servir pour l'affichage d'une liste de billet, de commentaires et bien d'autres choses. Tout comme le précédent article, celui-ci évoluera au fur et à mesure de mes découvertes... Cette documentation n'est pas exempte d'erreur, en effet, la plupart de éléments on été trouvé par déduction en étudiant des thèmes existant. Si vous découvrez des erreurs, omissions ou si vous voulez tout simplement compéter ce billet, n'hésitez pas à m'en faire part.
Vous trouverez ici mon article précédent sur les balises de type "en ligne".
Utilisation de ces balises
Les balises "boucles" servent a exécuter des actions un certain nombre de fois, à la manière d'un boucle for en php. Pour la plupart de ces boucles, vous pouvez créer une entête et un pied qui ne seront exécutés qu'au début et à la fin de notre boucle. Prenons un exemple concret pour illustrer ces propos :
<tpl:notreBoucle>
<tpl:notreBoucle Entete>
Afficher "Début "
</tpl:notreBoucle Entete>
Afficher "coucou N°{{tpl:boucleNumero}}"
<tpl:notreBoucle piedPage>
Afficher " Fin de notre boucle"
</tpl:notreBoucle piedPage>
</tpl:notreBoucle>
Donnera alors (imaginons que notreBoucle renvoie 3 éléments pour une boucle "article", 3 seraient affichés) :
Début --- coucou N°1 coucou N°2 coucou N°3 --- Fin de notre Boucle
Les balises "test" servent à exécuter des action suivant une conditions comme par exemple <si paramètre> Commandes <fin si>.
Liste des catégories
<tpl:Categories> ... </tpl:Categories> : Exécute les instruction entres ces deux balises pour toute les catégories utilisé par notre blog. Pour afficher la liste des catégories utilisées par notre blog sous forme d'une liste, voila ce que nous ferions :
<ul>
<tpl:Categories>
<li><a href="{{tpl:CategoryURL}}">{{tpl:CategoryTitle encode_html="1"}}</a></li>
</tpl:Categories>
</ul>
Liste des Billets
<tpl:Entries> ... </tpl:Entries> : Liste les billets du blog. Par défaut, dotclear liste des 20 derniers billet (vous pouvez changer ce paramètres dans l'interface d'administration). Cette boucle s'utilise dans toutes les pages sauf post.html (affichage d'un billet seul). Cette boucle peux prendre plusieurs paramètres :
<tpl:Entries lastn="10"> : Affiche les 10 derniers billets du blog, remplacez 10 par le nombre de billets désirés.<tpl:Entries category="Blabla, Tata">: N'affiche que les billets de ou des catégories citée(s) (séparées par des virgules), ici Blabla et Tata. Vous pouvez spécifier les catégories à ne pas afficher grâce à un ! suivi de la catégorie a ne pas afficher :!Macatégoriepar exemple.<tpl:Entries author="E-PhasE">: N'affiche que les billets du (des) auteur(s) cité(s), fonctionne comme pour le paramètres category.<tpl:Entries sortby="author">: Définis la méthode de tri pour l'affichage des billets, les possibilités sontauthor(par auteur),date(par date),selected(??) ettitle(par titre).<tpl:Entries order="asc">: Définis l'ordre de tri des billets,ascpour croissant etdescpour décroissant.- <
tpl:Entries no_content="1">: Ne s'occupe pas des contenus des billets lorsque ce paramètre est à 1, par défaut il est à 0. On utilise se paramètre pour, par exemple pour faire une liste des billets avec juste les titres (sans les contenus).
<tpl:EntryIf extended="1"> ... </tpl:EntryIf> : La première "condition" de ce petit billet, exécute les actions entres ces deux balises si le billet en cours contient un chapeau plus un contenu. S'utilise dans toutes les page, et de façon autonome (sans la boucle <tpl:Entries>...) dans la page post.html.
<tpl:EntryIf extended="0"> ... </tpl:EntryIf> : à l'inverse, exécutes les actions entre ces balises si le billet n'a pas de chapeau (juste un contenu). S'utilise dans toutes les page, et de façon autonome (sans la boucle <tpl:Entries>...) dans la page post.html.
L'entête de la liste des billets est définis avec la balise <tpl:EntriesHeader> .. .</tpl:EntriesHeader> et le pied de page avec <tpl:EntriesFooter> .. .</tpl:EntriesFooter>.
Prenons un exemple pour illustrer tout ceci : affichons les 10 derniers billet de la catégorie "news" classé par date et par ordre croissant, seulement le chapeau s'il y en a un, sinon le billet entier :
<tpl:Entries category="news" sortby="date" order="asc">
<tpl:EntriesHeader>
<p class="post-header"> Liste des news de ce blog : </p>
</tpl:EntiesHeader>
<tpl:EntryIf extended="1">
<div class="post">{{tpl:EntryExcerpt}}</div>
</tpl:EntryIf>
<tpl:EntryIf extended="0">
<div class="post">{{tpl:EntryContent}}</div>
</tpl:EntryIf>
<tpl:EntriesFooter>
<p class="post-footer"> Et voilà la jolie liste</p>
</tpl:EntriesFooter>
</tpl:Entries>
Liste des commentaires
La liste des commentaire se fait principalement dans le fichier post.html, mais libre a vous de le faire autre part (dernier commentaire affiché dans la liste des billets par exemples).
<tpl:EntryIf show_comments="1"> ... </tpl:Entryif> : exécute les commandes entre ces deux balises s'il existe des commentaires pour le billet en cours.
<tpl:Comments> ... </tpl:Comments> : les commandes entres ces deux balises seront exécutées autant de fois qu'il y a de commentaires pour le billet en cours.
l'entête des commentaires se défini grâce aux balises <tpl:CommentsHeader> .. </tpl:CommentHeader>, le pied avec <tpl:CommentsFooder> .. </tpl:CommentFooder>.
Pour exemples, affichons les commentaires relatif à un billet dans notre fichier post.html :
<tpl:EntryIf show_comments="1">
<div id="comments">
<tpl:Comments>
<tpl:CommentsHeader>
<p class="comments-header">{{tpl:Lang Comments}}</p>
</tpl:CommentsHeader>
<p id="c{{tpl:CommentID}}" class=c-details">{{tpl:CommentDate}}, {{tpl:lang By}} {{tpl:CommentAuthorLink}}</p>
<p class="comment">{{tpl:CommentContent}}</p>
<tpl:CommentsFooter>
<p class="comments-footer">Merci pour ces commentaires</p>
</tpl:CommentsFooter>
</tpl:Comments>
</div>
</tpl:EntryIf>
Liste des rétroliens
La liste des rétroliens s'utilise de la même façon que la liste des commentaires.
<tpl:EntryIf show_pings="1"> ... </tpl:EntryIf> : n'exécute les commandes entres ces deux lignes que s'il existe des rétroliens pour le billet en cour.
<tpl:Pings> ... </tpl:Pings> : Les commandes entres ces deux balises seront exécutées autant de fois qu'il y a de rétroliens pour le billet en cours.
l'entête des commentaires se défini grâce aux balises <tpl:PingsHeader> .. </tpl:PingsHeader>, le pied avec <tpl:PingsFooter> ... </tpl:PingsFooter>.
Pour l'exemple, affichons la liste des rétroliens pour un billet :
<tpl:EntryIf show_pings="1">
<div id="pings">
<tpl:Pings>
<tpl:PingsHeader>
<p class="p-header">Même sujet, autre blogs : </p>
</tpl:PingsHeader>
<p id="ctpl:PingID
" class="p-details">{{tpl:PingDate}}, {{tpl:lang by}} {{tpl:PingBlogName encode_html="1"}}</p>
<p class="ping"><a href="{{tpl:PingAuthorURL}}" {{tpl:PingNoFollow}}>{{tpl:PingTitle encode_html="1"}}</a><br/>
{{tpl:PingContent}}</p>
<tpl:PingsFooter>
</tpl:PingFooter>
</tpl:Pings>
</div>
</tpl:EntryIf>
Commentaires
bernard | samedi 12 janvier 2008 | 13:06
E-PhasE | samedi 12 janvier 2008 | 15:30
News | vendredi 25 janvier 2008 | 10:46
E-PhasE | jeudi 31 janvier 2008 | 01:00
Fils RSS | jeudi 31 janvier 2008 | 22:13
Vince | lundi 21 avril 2008 | 03:25
E-PhasE | mardi 22 avril 2008 | 23:52
Ajouter un commentaire