racine uZine

Dans la même rubrique
Mise en page : manuel de référence
26 mai 2003
16 août 2002
15 juin 2002
11 décembre 2001
7 décembre 2001
2 juin 2001
24 mai 2001
22 mai 2001
20 mai 2001
18 mai 2001
16 mai 2001
14 mai 2001
3 mai 2001
 
samedi 5 mai 2001

Les critères communs à toutes les boucles

par l’équipe de SPIP

Certains critères s’appliquent à (presque) tous les types de boucles. Ce sont des critères destinés à restreindre le nombre de résultats affichés ou à indiquer l’ordre d’affichage. On peut sans difficulté combiner plusieurs de ces critères de sélection.

Classer les résultats

{par critère_de_classement} indique l’ordre de présentation des résultats. Ce critère de classement correspond à l’une des balises tirées de la base de données pour chaque type de boucle. Par exemple, on pourra classer les articles {par date}, {par date_redac} ou {par titre}. (Notez que, si les balises sont en majuscules, les critères de classement sont en minuscules.)

Cas particulier : {par hasard} permet d’obtenir une liste présentée dans un ordre aléatoire.

Inverser le classement. De plus, {inverse} provoque l’affichage du classement inversé. Par exemple {par date} commence par les articles les plus anciens ; avec {par date}{inverse} on commence la liste avec les articles les plus récents.

Classer par numéro. (SPIP 1.3) Lorsqu’on réalise le classement selon un élément de texte (par exemple le titre), le classement est réalisé par ordre alphabétique. Cependant, pour forcer un ordre d’affichage, on peut indiquer un numéro devant le titre, par exemple : « 1. Mon premier article », « 2. Deuxième article », « 3. Troisième... », etc ; avec un classement alphabétique, le classement de ces éléments donnerait la série « 1, 10, 11, 2, 3... ». Pour rétablir le classement selon les numéros, on peut utiliser le critère :

{par num critère}

Par exemple :

affiche les articles d’une rubrique classés selon l’ordre chronologique inversé (les plus récents au début, les plus anciens à la fin), et :

les affiche selon l’ordre alphabétique de leur titre ; enfin :

les affiche selon l’ordre du numéro de leur titre (remarque : l’option {par num titre} ne fonctionne pas pour les plus anciennes versions de MySQL, antérieures à la version 3.23).

Comparaisons, égalités

{critère < valeur} Comparaison avec une valeur fixée (on peut utiliser « > », « < », « = », « >= », « <= ». Tous les critères de classement (tels que tirés de la base de données) peuvent également être utilisés pour limiter le nombre de résultats.

Par exemple :

affiche l’article dont le numéro est 5 (utile pour mettre en vedette un article précis sur la page d’accueil).

affiche les articles du secteur numéro 2.

Expressions régulières. Très puissant (mais nettement plus complexe à manipuler), le terme de comparaison « == » introduit une comparaison selon une expression régulière. Par exemple :

sélectionne les articles dont le titre commence par « a » ou « A ».

Négation. (SPIP 1.2) On peut utiliser la notation {xxx != yyy}, le ! correspondant à la négation (opérateur logique NOT).

sélectionne les articles dont le titre ne commence pas par « a » ou « A ».

sélectionne les articles qui n’appartiennent pas au secteur numéro 2.

Pour faciliter l’utilisation des comparaisons sur les dates, on a ajouté des critères :
- age et age_redac correspondent respectivement à l’ancienneté de la publication et de la première publication d’un article, en jours : {age<30} sélectionne les éléménts publiés depuis un mois ;
- les critères mois, mois_redac, annee, annee_redac permettent de comparer avec des valeurs fixes ({annee<=2000} pour les éléments publiés avant la fin de l’année 2000).

On peut combiner plusieurs de ces critères pour effectuer des sélections très précises. Par exemple :

affiche les articles du secteur 2, à l’exclusion de ceux de la rubrique 3, et publiés depuis moins de 30 jours.

Astuce. Le critère age est très pratique pour afficher les articles ou les brèves dont la date est située « dans le futur », avec des valeurs négatives (à condition d’avoir sélectionné, dans la Configuration précise du site, l’option « Publier les articles post-datés »). Par exemple, ce critère permet de mettre en valeur des événements futurs. {age<0} sélectionne les articles ou les brèves dont la date est située dans le futur (« après » aujourd’hui)...

(SPIP 1.3) Âge par rapport à une date fixée. Le critère age est calculé par rapport à la date d’aujourd’hui (ainsi {age<30} correspond aux articles publiés depuis moins d’un mois par rapport à aujourd’hui). Le critère age_relatif compare la date d’un article ou d’une brève à une date « courante » ; par exemple, à l’intérieur d’une boucle ARTICLES, on connaît déjà une date pour chaque résultat de la boucle, on peut donc sélectionner par rapport à cette date (et non plus par rapport à aujourd’hui).

Par exemple :

la BOUCLE_suivant affiche un seul article de la même rubrique, classé par date, dont la date de publication est inférieure ou égale à la date de l’« article_principal » ; c’est-à-dire l’article de la même rubrique publié après l’article principal.

Affichage d’une partie des résultats

- {a,b}a et b sont des chiffres. Ce critère permet de limiter le nombre de résultats. a indique le résultat à partir duquel on commence l’affichage (attention, le premier résultat est numéroté 0 - zéro) ; b indique le nombre de résultats affichés.

Par exemple {0,10} affiche les dix premiers résultats ; {4,2} affiche les deux résultats à partir du cinquième (inclus).

- {debut_xxx,b} est une variante très élaborée de la précédente. Elle permet de faire commencer la limitation des résultats par une variable passée dans l’URL (celle variable remplace ainsi le a que l’on indiquait précédemment). C’est un fonctionnement un peu compliqué, que fort heureusement on n’a pas besoin d’utiliser trop souvent.

La variable passée dans l’URL commence forcément par debut_xxx (où xxx est un mot choisi par le webmestre) . Ainsi, pour une page dont l’URL est :

petition.php3?id_article=13&debut_signatures=200

avec un squelette (petition.html) contenant par exemple :

on obtiendra la liste des 100 signatures à partir de la 200-ième. Avec l’URL :

petition.php3?id_article=13&debut_signatures=300

on obtient la liste des 100 signatures à partir de la 300-ième.

- {a/b}a et b sont des chiffres. Ce critère permet d’afficher une partie a (proportionnellement) des résultats en fonction d’un nombre de « tranches » b.

Par exemple : {1/3} affiche le premier tiers des résultats. Ce critère est surtout utile pour présenter des listes sur plusieurs colonnes. Pour obtenir un affichage sur deux colonnes, il suffit de créer une première boucle, affichée dans une case de tableau, avec le critère {1/2} (la première moitié des résultats), puis une seconde boucle dans une seconde case, avec le critère {2/2} (la seconde moitié des résultats).

Attention. L’utilisation du critère {doublons} avec ce critère est périlleuse. Par exemple :

n’affichera pas tous les articles de la rubrique ! Imaginons par exemple qu’il y ait au total 20 articles dans notre rubrique. La BOUCLE_prem va afficher la première moitié des articles, c’est-à-dire les 10 premiers, et interdire (à cause de {doublons}) de les réutiliser. La BOUCLE_deux, elle, va récupérer la deuxième moitié des articles de cette rubrique qui n’ont pas encore été affichés par la BOUCLE_prem ; donc, la moitié des 10 articles suivants, c’est-à-dire les 5 derniers articles de la rubrique. Vous avez donc « perdu » 5 articles dans l’opération...

Affichage entre les résultats

{"inter"} permet d’indiquer un code HTML (ici, inter) inséré entre les résultats de la boucle. Par exemple, pour séparer une liste d’auteurs par une virgule, on indiquera :

 
 
l’équipe de SPIP
Imprimer
format impression
l’équipe de SPIP
2 juin 2001
1er juin 2001
12 juin 2001
 
SPIP
Web indépendant