SPIP

[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

Télécharger

{par ...}

Mai 2012 — mis à jour le : Décembre 2015

Le critère {par ...} spécifie un ordre de présentation des résultats d’une boucle.


Le critère {par ...} spécifie un ordre de présentation des résultats d’une boucle. Par exemple, on pourra ordonner les articles {par date}, {par date_redac} ou encore {par titre}

Ordonner par numéro

Il est possible d’ordonner l’affichage des éléments en fonction du préfixe numérique d’un de leurs champs (titre, sur-titre, ps…) [1]. Pour cela, le critère s’écrit : {par num champ}. Par exemple pour ordonner suivant le préfixe numérique associé au titre, {par num titre} affichera les éléments dans l’ordre croissant des préfixes numériques de leur titre, en commençant (s’il y en a) par les titres non préfixés (qui, eux, ne seront pas ordonnés).

À noter :

  1. le critère {par num ...} prend aussi en compte toutes les valeurs du champ commençant par un chiffre ; ainsi {par num surtitre} tiendra compte du surtitre « 14 juillet 1789 » et le placera entre « 10. surtitre quelconque » et « 20. Autre surtitre ».
  2. pour les préfixes commençant par des 0 (zéro), l’ordre rendu par {par num titre} sera du préfixe comportant le plus grand nombre de zéros vers le préfixe en comportant le moins : 00000. Titre…, 0000. Titre…, 000. Titre…, 0. Titre…

Ordonner par langue et ordre alphabétique

Dans le cadre d’un site multilingue le critère {par multi ...} permet de trier par ordre alphabétique dans chaque langue séparemment ; par exemple : {par multi titre}. Sans l’ajout de multi la boucle renverrait le tri par ordre alphabétique toutes langues mélangées.

Ordonner selon plusieurs champs

Il est possible d’ordonner les éléments selon plusieurs champs. En écrivant {par champ1, champ2} on indique les ordres de tri consécutifs : les résultats sont d’abord triés selon le champ1, puis selon le champ2 pour les champs1 identiques. Il est possible de spécifier autant de champs que nécessaire. Par exemple : {par date, titre} affichera les résultats triés par date (de la plus ancienne à la plus récente), puis les résultats ayant la même date seront triés par titre (dans l’ordre alphabétique).

Il est possible de spécifier plusieurs critères {par ...} pour une boucle. Par exemple : {par date} {par titre} est équivalent à l’exemple précédent {par date, titre}.

Attention : Quand on utilise plusieurs critères de tri, le critère {inverse} ne s’applique qu’au critère de tri placé juste avant. Ainsi {par date} {par titre} {inverse} n’appliquera le tri inversé que sur le champ titre (de Z à A), la date conservant son tri par défaut (de la plus ancienne à la plus récente).

C’est pourquoi on a introduit la notation {!par ...} qui inverse un critère de tri en particulier. Par exemple : {!par date} {par num titre} ordonne les résultats par date décroissante (de la plus récente à la plus ancienne) puis par numéro croissant pour les titres ayant la même date. Cependant : {!par date, num titre} ordonne les résultats par date décroissante (de la plus récente à la plus ancienne) puis par numéro décroissant pour les titres ayant la même date ; cette écriture est donc équivalente à {!par date} {!par num titre} mais est différente de {par date, num titre} {inverse} (où {inverse} ne s’applique que sur date). Attention donc à bien choisir votre écriture des critères en fonction des résultats que vous attendez.

Ordonner dynamiquement

Le critère {par ...} accepte aussi des noms de champs SQL spécifiés dynamiquement, notamment par la balise #ENV. Par exemple : {par #ENV{variable}} ordonnera sur la valeur de « variable » passée en url &variable=titre à condition que cette valeur soit un champ SQL de la table concernée par la boucle.

Ainsi &variable=num titre ne fonctionnera pas puisque aucun champ SQL ne se nomme num titre. Dans ce cas, on préférera utiliser le critère {tri}.

Ordre aléatoire

Il est possible d’obtenir une liste présentée dans un ordre aléatoire en utilisant le critère {par hasard}.

Ordonner les éléments d’une recherche par pertinence

Afin de classer les résultats d’un formulaire de recherche par pertinence, on utilisera le critère {par points} {inverse} ; un simple {par points} ordonnant les résultats de la plus petite à la plus grande pertinence.

P.-S.

Voir aussi le critère {inverse}

Notes

[1Le format du préfixe numérique est : un nombre de n chiffres, suivi d’un point ou d’une parenthèse fermante, suivie d’un espace. exemples :   015. Un titre   51) Un autre titre


Voir le squelette de cette page Site réalisé avec SPIP | Espace de traduction | Espace privé