Mes premières boucles (spécial débutants)

SPIP a beau être facile quand on est débutant on s’arrache les cheveux à trouver les bonnes boucles, car on ne comprend pas toujours tout.

Alors voici toutes mes boucles avec leurs explications.

Utilisateurs confirmés passez votre chemin ;-)

I. RUBRIQUES:

Boucle qui liste toutes les rubriques du site (ordre alphabétique):

<BOUCLE_sommaire_rubriques(RUBRIQUES){racine}{par titre}>
<a ref="#URL_RUBRIQUE" >#TITRE</a><br />
</BOUCLE_sommaire_rubriques>

Boucle qui liste toutes les rubriques du site même les vides (ordre alphabétique):

<BOUCLE_sommaire_rubriques(RUBRIQUES){tout}{par titre}>
<a href="#URL_RUBRIQUE">#TITRE</a><br />
</BOUCLE_sommaire_rubriques>

Boucle qui liste toutes les rubriques du site sauf une (ordre alphabétique):

<BOUCLE_sommaire_rubriques(RUBRIQUES){racine}{par titre}  {id_rubrique!=ici le numéro de la rubrique à exclure}>
<a href="#URL_RUBRIQUE">#TITRE</a><br />
</BOUCLE_sommaire_rubriques>

Boucle qui liste une seule rubrique du site :

<BOUCLE_sommaire_rubriques(RUBRIQUES){id_rubrique=ici le numéro de la rubrique}>
<a href="#URL_RUBRIQUE">#TITRE</a><br />
</BOUCLE_sommaire_rubriques>

Boucle qui liste une rubrique spécifique et ses sous-rubriques (ordre alphabétique):

<BOUCLE_sommaire_rubriques(RUBRIQUES){id_secteur=ici le numéro de la rubrique}{par titre}>
<a href="#URL_RUBRIQUE">#TITRE</a><br />
</BOUCLE_sommaire_rubriques>

Dans la page des rubriques:

<BOUCLE_rubrique_principal(RUBRIQUES){id_rubrique}>

tout en haut de la page avant tout et

</BOUCLE_rubrique_principal>

après tout à la fin.


II. ARTICLES

A. Le sommaire

<BOUCLE_premier_article(ARTICLES){doublons}{par date}{inverse}{0,3}>
<a href="#URL_ARTICLE">[(#LOGO_ARTICLE|right||image_reduire{100,100})]</a>
<BOUCLE_rubriques2(HIERARCHIE){id_article}>
<a href="#URL_RUBRIQUE"><strong>[(#TITRE|majuscules)]</strong></a>
</BOUCLE_rubriques2><br />
<a href="#URL_ARTICLE">
<strong>#TITRE</strong><br />
[(#INTRODUCTION|couper{300})</div><a href="#URL_ARTICLE">Lire la suite</font></a>]
</BOUCLE_premier_article></td>

Cette boucle liste 3 articles (pour changer le nombre il suffit de changer {0,3} en {0,le nombre voulu} ex: {0,5} pour 5 articles.

{doublons} évite que le même article revienne plusieurs fois.

Il est nécessaire d’utiliser ce critère dans TOUTES les boucles qui ne doivent pas comporter de doublons ; ici, la boucle premier_article ci-dessus et la ou les boucles de type ARTICLE suivantes (cf : les critèrescommuns à toutes les boucles)

{par date} {inverse} les articles sont classés par dates du plus récent au plus vieux.

#URL_ARTICLE est utilisé pour faire un lien vers l’article, ici placé aussi sur le logo de l’article

#LOGO_ARTICLE affiche le logo joint à l’article
|right le place à droite
|left le mettera à gauche, |center au centre.

||reduire_image{100,100})
Permet de réduire les images à la taille voulue largeur,hauteur pour éviter que les pages se déforment si un auteur met un trop gros logo. Pour spip 1.9 la nouvelle dénomination est image_reduirelargeur, hauteur (pour voir les nouvelles possibilités allez ici)

(les deux chiffres 100 sont à remplacer par la grandeur maximale que vous voulez pour vos imageslargeur,hauteur)

La boucle HIERARCHIE suivante permet d’afficher la rubrique dans laquelle se trouve l’article. On affiche son titre avec #TITRE et si on veut qu’il soit toujours en majuscules on rajoute le filtre |majuscules.

On affiche ensuite l’introduction, le filtre couper permet de limiter le nombre de caractère (on est sur la page d’accueil, on veut juste donner envie au lecteur de lire la suite!).Bien sûr vous pouvez le changer. Sans filtre ça met les 600 premiers caractères.

Moi je mets ensuite un petit “lire la suite” mais vous pouvez faire comme vous voulez exemple: (...)

Si vous voulez n’afficher que les articles d’une rubrique:
dans la première boucle

<BOUCLE_premier_article(ARTICLES){doublons}{par date}{inverse}{0,3}>

rajoutez {id_rubrique=le numéro de votre rubrique}  
exemple {id_rubrique=29} pour afficher tous les articles de la rubrique 29

Pour affichez les articles d’une rubrique et de ses sous rubriques:
{id_secteur=29}(29 pour notre exemple mettez le numéro de votre rubrique)

Pour ne pas afficher les articles d’une rubrique:
{id_rubrique!=29}

Pour ne pas afficher les articles d’une rubrique et de ses sous rubriques:
{id_secteur!=29}


B. la page article

Dans la page des articles:

<BOUCLE_article_principal(ARTICLES) {id_article}>

tout en haut de la page avant tout et

</BOUCLE_article_principal>

après tout à la fin.

Puis

#TITRE<br>[(#LOGO_ARTICLE|center||reduire_image{200,200})]
<br /><br />
- Publié le [(#DATE|nom_jour)] [(#DATE|jour)] [(#DATE|nom_mois)] [(#DATE|annee).]<br /><br />
<strong>[(#CHAPO|justifier)]</strong>
[(#TEXTE*|reduire_image{300,300}|justifier)]
#PS<br /><br />article vu :#VISITES fois
[<a href="forum.php?(#PARAMETRES_FORUM)"<strong>Ajouter un commentaire</strong></a>]

<B_sujets>
<br /><strong>Il y a #TOTAL_BOUCLE [(#TOTAL_BOUCLE|>{1}|?{' commentaires',' commentaire'})]</strong><br /><br />
#ANCRE_PAGINATION
<BOUCLE_sujets(FORUMS){id_article}{par date}{inverse} {pagination}>
[(#TEXTE|justifier)]
<i>[ <:par_auteur:> </i><a ref="mailto:#EMAIL"><strong>(#NOM)</strong></a>]<i>
[le (#DATE|affdate{'d-m-Y'})][ à (#DATE|heures) ][.(#DATE|minutes) ]</i>
[<a href="forum.php?(#PARAMETRES_FORUM)">&nbsp;&nbsp;R&eacute;pondre &agrave; ce message</a>]
<br /><br />

<BOUCLE_sujets2(FORUMS){id_parent}{par date}{inverse}>
[(#TEXTE|justifier)]<i>[ <:par_auteur:> </i>
<a href="mailto:#EMAIL"><strong>(#NOM)</strong></a>]<i>
[le (#DATE|affdate{'d-m-Y'})][ à (#DATE|heures) ][.(#DATE|minutes) ]</i>
[<a href="forum.php?(#PARAMETRES_FORUM)">&nbsp;&nbsp;R&eacute;pondre &agrave; ce message</a>]<br /><br /><br />
</BOUCLE_sujets2>

#PAGINATION
</BOUCLE_sujets>
</B_sujets>

Ici pas besoin de mettre la boucle (ARTICLES) puisqu’elle est déjà mise en haut et en bas de page

On retrouve les mêmes choses que pour la partie rubriques mais ici le logo de l’article s’affiche grâce à #LOGO_ARTICLE

On affiche la date de publication : ici au format nom du jour ,jour, nom du mois , année. On peut bien sûr le changer.
par exemple :
[le (#DATE|affdate{'d-m-Y'})][ à (#DATE|heures) ][.(#DATE|minutes) ] affiche la date sous la forme de : le 20-07-2006 à 13 .05

#CHAPO pour afficher le chapeau

#TEXTE pour afficher le texte de l’article avec un filtre pour redimensionner toutes les images de l’article comme expliqué plus haut.

#PS pour afficher le post-scriptum

#VISITES permet d’afficher le nombre de fois où l’article a été vu

la suite permet aux visiteurs de commenter l’article, et le nombre de commentaires s’affiche (si il y en a ) grâce à #TOTAL_BOUCLE (avec une petite boucle pour mettre un ’s’ à commentaire s’il le faut)

le nom de l’auteur s’affiche avec un lien vers son mail, la date s’affiche sous la forme de : le 20-07-2006 à 13 .05

La boucle sujets2 permet de poster un message en réponse au premier commentaire.

Il y a également le filtre pagination (spip 1.9) , qui permet de couper en plusieurs pages les forums s’ils deviennent trop importants, avec #ANCRE_PAGINATION , pagination (dans la partie où l’on veut l’utiliser) et #PAGINATION

Il faut rajouter un chiffre correspondant au nombre de messages souhaité avant pagination ex: {pagination  6} pour 6 messages.

N.B Avant spip 1.9 pour avoir une pagination il faut utiliser un filtre:
le filtre pagination


III. AUTEURS

La boucle auteurs:

Pour mettre simplement l’auteur de l’article avec un lien vers sa page auteur (expliquée plus bas):

<BOUCLE_auteurs(AUTEURS){id_article}{par nom}>
<i><a href="#URL_AUTEUR">#NOM</a></i>
</BOUCLE_auteurs>

La boucle auteurs pour la page auteurs:

<BOUCLE_auteur_principal(AUTEURS) {id_auteur}>

la mettre tout en haut de la page sur la page auteurs

<h2><strong>#NOM</strong></h2>
[(#LOGO_AUTEUR|right||reduire_image{150,150})]
[<strong>Sa bio:</strong><br />(#BIO)]
[<br /><strong>Son site:</strong>
<a href="(#URL_SITE)">#NOM_SITE</a><br /><br />]

<B_nombretotal><BOUCLE_nombretotal(ARTICLES){id_auteur}>
</BOUCLE_nombretotal><i>#NOM a écrit #TOTAL_BOUCLE articles </i>
</B_nombretotal>

<!-- Articles de l'auteur -->
<h5>Tous ses articles</h5>
<div class="liste-articles">
<BOUCLE_articles(ARTICLES) {id_auteur}{par date}{inverse}{debut_page,25}>
<a href="#URL_ARTICLE" [title="(#DESCRIPTIF|textebrut|entites_html)"]><strong>#TITRE</strong></a>
[(#DATE|nom_jour)] [(#DATE|affdate)]<br />
</BOUCLE_articles>
</BOUCLE_auteur_principal>

( la mettre tout en bas de la page sur la page auteur)

Cette boucle affiche le nom d’un auteur, on arrive sur cette page après avoir cliqué sur le nom de l’auteur clicable sur l’article (etc..)

On affiche son nom, son logo ("LOGO_auteur), sa bio #BIO (s’il n’a pas rempli son profil ça ne s’affiche pas), un lien vers son site

La boucle BOUCLE_nombretotal calcule le nombre d’articles écrit par cet auteur.

Enfin on liste tous les articles de cet auteur.

On peut bien sûr se servir des filtres expliqués plus haut pour ne mettre que les articles d’une rubrique ou pour exclure les articles d’une rubrique.


IV. LES PLUS

Tous les articles classés par popularité

<BOUCLE_page(ARTICLES) {par popularite}{inverse}{doublons}>
<a href="[(#URL_ARTICLE)]">#TITRE</a><br />popularité:  #POPULARITE %</font><br /><br />
</BOUCLE_page>

Tous les articles classés par visites

<BOUCLE_page(ARTICLES) {par visites}{inverse}{doublons}>
<a href="[(#URL_ARTICLE)]">#TITRE</a><br>#VISITES visites</font><br /><br />
</BOUCLE_page>

CONSEILS:

*Si vous utilisez plusieurs fois la même boucle dans une page il faut lui donner un autre nom!

exemple:

Un tableau de deux colonnes avec les 6 derniers articles d’une même rubrique, le logo de l’article et le titre de chaque article, le tout clicable vers l’article.
Dans cet exemple j’ai choisi d’afficher la rubrique numéro 13 mais sur mon site la balise est
<BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique} > car ce tableau me sert dans la page de mes rubriques (rubrique.html), cette boucle est donc tout en haut de ma page et la boucle de fermeture tout en bas.

Remarquez la boucle_resum qui est la même mais change de nom.

<BOUCLE_rubrique_principal(RUBRIQUES) {id_rubrique=13}>
<div align="center">

<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>

<td width="50%">      
<table>
<tr>
<BOUCLE_resum(ARTICLES){id_rubrique}{doublons}{par date}{inverse}{0,1}>
<td width="40%" align="right" valign="top"> 
<a href="[(#URL_ARTICLE)]">[(#LOGO_ARTICLE||reduire_image{50})]<br /><br /></td>
<td width="60%" align="left" valign="top">#TITRE<br /></a></td>
</BOUCLE_resum>
</tr>
<tr>
<BOUCLE_resum2(ARTICLES){id_rubrique}{doublons}{par date}{inverse}{0,1}>
<td width="60%" align="right" valign="top"><a href="[(#URL_ARTICLE)]">[(#LOGO_ARTICLE||reduire_image{50})]<br /><br /></td>
<td width="60%" align="left" valign="top">#TITRE<br /></a></td>
</BOUCLE_resum2>
</tr>
<tr>
<BOUCLE_resum3(ARTICLES){id_rubrique}{doublons}{par date}{inverse}{0,1}>
<td width="40%" align="right" valign="top"><a href="[(#URL_ARTICLE)]">[(#LOGO_ARTICLE||reduire_image{50})]<br /><br /></td>
<td width="60%" align="left" valign="top">#TITRE<br /></a></td>
</BOUCLE_resum3>
</tr>
</table>
</td>
      
<td width="50%">
<table>
<tr>
<BOUCLE_resum4(ARTICLES){id_rubrique} {doublons}{par date}{inverse}{0,1}>
<td width="40" align="right" valign="top"><a href="[(#URL_ARTICLE)]">[(#LOGO_ARTICLE||reduire_image{50})]<br /><br /></td>
<td width="60%" align="left" valign="top">#TITRE<br /></a></td>
</BOUCLE_resum4>
</tr>
<tr>
<BOUCLE_resum5(ARTICLES){id_rubrique} {doublons}{par date}{inverse}{0,1}>
<td width="40" align="right" valign="top"><a href="[(#URL_ARTICLE)]">[(#LOGO_ARTICLE||reduire_image{50})]<br /><br /></td>
<td width="60%" align="left" valign="top">#TITRE<br /></a></td>
</BOUCLE_resum5>
</tr>
<tr>
<BOUCLE_resum6(ARTICLES){id_rubrique} {doublons}{par date}{inverse}{0,1}>
<td width="40" align="right" valign="top"><a href="[(#URL_ARTICLE)]">[(#LOGO_ARTICLE||reduire_image{50})]<br><br></td>
<td width="60%" align="left" valign="top">#TITRE<br /></a>
</td>
</BOUCLE_resum6>
</tr>
</table>
</td>

</tr>
</table>
</div>
</td>
</tr>
</table>
</div>
</BOUCLE_rubrique_principal>

Voir la documentation officielle sur les balises:

-  hierarchie
-  rubriques
-  articles
-  auteurs
-  forums
-  les critères communs à toutes les boucles

updated on 14 October 2007

Discussion

12 discussions

  • 1

    Bonjour,

    Comment afficher plusieurs n°de rubrique dans :
    Il est impossible d’écrire id_rubrique=2,38)


    #TITRE

    Merci de votre réponse
    Marc

    • Marco,

      Il faut mettre id_rubrique IN 2,38 #TITRE

      A+

    Reply to this message

  • Merci pour cet article... il correspond parfaitement aux questions que je me pose.

    Il y en a une néanmoins qui ne trouve pas de réponse.

    Comment dans une boucle, associer certaines brèves à un article.
    En fait, j’ai quelques brèves qui sont des “annexes” d’un article. et je voudrais que des liens vers ces brèves apparaissent dans l’article, mais dans cet article seulement. J’ai réussi à faire un jolie boucle et un mot clé sur les brèves consernés. Mais bien entendu, les liens apparaissent dans tous les articles de la rubriques... dommage.

    Si quelqu’un a une astuce qui éviterait à mes rédacteurs d’avoir à créer un tableau et les liens à la main, je suis preneur.

    Merci...

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom