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

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom