<b:loop values="data:posts" var="post"/>, voici un exemple de balise que vous retrouverez souvent dans votre code html Blogger. Il faudrait vous en habituer si vous souhaitez personnaliser votre blog. Ici, il permet de s'intéresser à chaque article (var="post") parmi tous les articles disponibles (values="data:posts"). Reste à savoir quels sont les articles disponibles dans les différents types de pages Blogger ?

La page d'accueil de votre blog ne peut afficher au maximum que 10 articles. Dans votre panneau de configuration, vous choisissez donc le nombre d'articles à afficher, appelons n ce nombre. Ainsi un b:loop dans la page d'accueil n'analysera dans notre cas que n articles. Voici une illustration du code dans le cadre d'une page d'accueil Blogger:

<b:includable id='main' var='top'>
  <b:if cond='data:blog.url == data:blog.homepageUrl'> <!--si accueil-->
    <b:loop values='data:posts' var='post'> <!--pour chaque article, on affiche-->
      <b:include data='post' name='post'/> <!--(1) l'article-->
       <b:include data='post' name='partage'/> <!--(2) les agrégateurs: digg, scoopeo ...-->
       <b:include data='post' name='comments'/> <!--(3) les commentaires-->
     </b:loop>
  </b:if>
</b:includable>
<b:includable id='partage' var='post'> <!--(4) description de l'élément (2)-->
  <div>
    <a expr:href='"http://del.icio.us/post?url=" + data:post.url + "&amp;title=" + data:post.title' rel='nofollow'>
      <img alt='Ajouter cet article à Del.icio.us' src='http://del.icio.us/delicious.png'/>
    </a>
  </div>
</b:includable>

Le code ci-dessus est un exemple, toutefois vous constaterez que les éléments (1) et (3) existent bien dans votre blog. Nous avons introduit ici l'élément (2), qui permettra l'affichage des boutons de partage de contenu. Comme cet élément n'existait pas, nous l'avons ensuite fabriqué en (4).

Nous avons pu lire sur certains blogs qu'il était difficile sur Blogger d'afficher les agrégateurs avant les commentaires et surtout de leur permettre de récupérer les Urls des articles. D'après le code ci-dessus, vous voyez qu'on peut afficher les éléments dans l'ordre désiré, à codition de créer ceux qui n'existaient pas comment nous l'avons fait en (4). L'élément (4) varie en fonction des articles, ainsi le bouton "ajouter cet article à del.icio.us" que nous y avons placé, récupère l'Url et le titre de chaque article concerné.

En page article, il n'y a qu'un seul élément: l'article concerné. Un b:loop comme nous l'avons fait ci-dessus n'analysera qu'un seule donnée. Par contre, pour un article, on peut avoir plusieurs commentaires, c'est l'occasion de faire un autre b:loop comme suit:

<b:includable id='main' var='top'>
  <b:if cond='data:blog.pageType == "item"'> <!--si page article-->
    <b:loop values='data:posts' var='post'> <!--pour cet article, on affiche-->
      <b:include data='post' name='post'/> <!--(1)l'article-->
      <div class='auteurs commentaires'> <!--(2) les noms de ceux qui l'ont commentés-->
        <span>Ils ont commenté cet article:</span>
        <span>
          <b:loop values='data:post.comments' var='comment'> <!--(3)-->
            <data:comment.author/>
          </b:loop>
        </span>
      </div>
    </b:loop>
  </b:if>
</b:includable>

On a volontairement choisi dans cet exemple d'afficher les noms de ceux qui ont commenté l'article. C'est le b:loop défini en (3) qui récupère ces noms, ainsi vous voyez comment utiliser un b:loop dans un autre...

En conclusion, savoir différencier les types de pages dans Blogger et maitriser le fonctionnement de la propriété b:loop vous assurera une personnalisation sans risque de votre blog. Cela vous évitera aussi de recopier et d'installer des codes fournis dans différents blogs sans vérifier leur cohérence, surtout si on ne vous montre pas une page dans laquelle ces codes ont été mis en pratique.