Quelques balises Dotclear2 : les balises "boucle"

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égorie par 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 sont author (par auteur), date (par date), selected (??) et title (par titre).
  • <tpl:Entries order="asc"> : Définis l'ordre de tri des billets, asc pour croissant et desc pour 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>

Ajouter un rétrolien

URL de rétrolien : http://www.xieme-art.org/trackback/55

Haut de page