Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#1 2011-11-18 15:09:14

sacripant
Plugin Author
From: Rhône — France
Registered: 2008-06-01
Posts: 479
Website

[fr-fr] Tout sur l'attribut SORT

Hello les frenchies,

S’il il y a 1 attribut de balise assez délicat à apprivoiser, c’est bien celui-là.
Et la documentation est un peu légère là dessus.
J’aimerais échanger avec vous sur les différentes façon d’utiliser cet attribut, son fonctionnement, pour finalement faire un article détaillé sur txp-fr.

Liste des balises possédant l’attribut sort

  • article
  • article_custom
  • category_list
  • comments
  • file_download_list
  • image_index
  • linklist
  • recent_articles
  • recent_comments
  • related_articles
  • section_list

algorithme de tri ?

Je ne sais pas si le tri se fait toujours de la même façon. Apparemment l’agorithme est standard (alphabétique ?) :
Si vous avez des informations là-dessus je suis preneur.

  1. caractères spéciaux (Dans quel ordre ?)
  2. chiffres
  3. lettres

Pour les chiffres, comment sont-ils triés ?
Comme cela :

1
11
12
2
21
22
ou 1
2
11
12
21
22

Est-il possible de choisir ?

Valeur

La valeur de l’attribut prend 2 éléments :

  1. l’élément de référence sur lequel l’algorithme de tri doit se faire (title, posted, section, etc.). Ces valeur sont en lien direct avec les colonnes de la table (de la Base de données) des éléments à trier.
  2. l’ordre de tri : ascendant ou descendant (asc ou desc)

Plusieurs valeurs ?

La documentation indique succintement que l’on peut donner plusieurs valeurs à l’attribut, séparer par des virgules :

sort="section asc, title desc"

Si quelqu’un a un exemple concret d’utilisation, sinon je testerais 1 de ces 4.

Valeurs obscures

Il y a 2 types de valeur que je ne saisi pas très bien.
La première est sort="custom_n+0" pour la balise article par ex.
La 2e n’est pas documenté dans la wiki (ou je ne sais pas où) : sort="FIELD(ID,5,1,4,2,3)". À priori c’est du Sql ? Quelqu’un pourrais me détailler le fonctionnement de cette syntaxe et quelles pourraient être ses variantes ?

Et maintenant ?

Je vais essayer de compléter ce post au fur et à mesure de mes découvertes. Et je compte sur vous pour apporter plus de précisions, répondre à mes interrogations et compléter si j’ai oublié des aspects de cet attribut.
Merci.

Last edited by sacripant (2011-11-18 15:09:58)

Offline

#2 2011-11-18 15:26:09

uli
Moderator
From: Cologne
Registered: 2006-08-15
Posts: 4,303

Re: [fr-fr] Tout sur l'attribut SORT

Quelle idée geniale, sacripant! Je vais certainement revisiter cette page!


In bad weather I never leave home without wet_plugout, smd_where_used and adi_form_links

Offline

#3 2011-11-18 15:51:50

Dragondz
Moderator
From: Algérie
Registered: 2005-06-12
Posts: 1,529
Website GitHub Twitter

Re: [fr-fr] Tout sur l'attribut SORT

Salut Sacripan

Voila ce que j’en sais:

pour l’ordre 11 est avant 2 car l’ordre est pris en tant que caractère.

Tu peux définir plusieurs critères de tri, les éléments sont triés d’abords par le premier et ensuite pas le deuxième ex: sort=“title asc, id desc” donne comme résultat : tri alphabétique du titre et si 2 titre sont classé au même niveu (même titre par ex) il seront triè par le id.

Le sort=“custom_n + 0” permet je crois de faire un tri numérique par le custom field choisit au lieu d’un tri alphabétique.

Pour le sort=“FIELD” cela permet de définir un ordre de tri arbitraire le résulat sera présenté comme suit id=5 puis id=“1” …

Voila ce que je retien de mes lectures du forum.

A+

Offline

#4 2011-11-22 10:03:05

sacripant
Plugin Author
From: Rhône — France
Registered: 2008-06-01
Posts: 479
Website

Re: [fr-fr] Tout sur l'attribut SORT

Thx Rabah pour ces précisions.
Pour aller justqu’au bout, il me reste à faire quelques tests sur “tri alphabétique VS tri numérique”.
Et pour bien comprendre cet attribut, je crois qu’il faut tout simplement bien comprendre “ORDER BY” en SQL.

Offline

#5 2011-11-24 21:30:09

Pat64
Plugin Author
From: France
Registered: 2005-12-12
Posts: 1,595
GitHub Twitter

Re: [fr-fr] Tout sur l'attribut SORT

Super intéressant ! J’ai hâte de lire l’article :)


Patrick.

Github | CodePen | Codier | Simplr theme | Wait Me: a maintenance theme | [\a mi.ni.ma]: a “Low Tech” simple Blog theme.

Offline

#6 2012-02-01 17:15:43

Niconemo
Member
From: Rhône-Alpes, France
Registered: 2005-04-18
Posts: 557

Re: [fr-fr] Tout sur l'attribut SORT

Dragondz wrote:

Le sort=“custom_n + 0” permet je crois de faire un tri numérique par le custom field choisit au lieu d’un tri alphabétique.

À la relecture de ce sujet je suis étonné que ça ai l’air si peu utilisé.
C’est quand même la seule méthode pour classer une liste d’articles à part par date ou ordre alphabétique (ou leurs dérivés)

Mon custom_1 s’appelle toujours “ordre”, “tri” ou “classement” et il sert à définir l’ordre d’apparition des articles. JE mets ça systématiquement en place tout de suite après l’installation de Textpattern.

Si on met des numéros dans un tel champ personnalisé, les articles passent devant ceux dont ce champ est vide qui eux restent avec le classement par défaut. Une sorte de Statut sticky en mieux.

La très grande majorité des sites que je fais sont tout sauf des blogs ou des abécédaires et je pensais que tout le monde faisait comme ça du coup pour choisir l’ordre d’affichage des articles.

Si ça n’est pas le cas, ça mérite un tuto sur txp.fr ! :D

Last edited by Niconemo (2012-02-01 17:28:38)


Nico

Offline

#7 2012-02-01 17:28:14

sacripant
Plugin Author
From: Rhône — France
Registered: 2008-06-01
Posts: 479
Website

Re: [fr-fr] Tout sur l'attribut SORT

Mmmm, lors d’un tri numérique, les champs remplis se place avant les champs vides ? à tester…

Et dans un tri alphabétique, les champs vide se classent en premier, alors.

Merci Nico

J’ai rassemblé quelques infos et j’ai un draft d’article. Il me reste à comprendre l’ordre des caractères spéciaux ou à trouver l’info quelque part.

Je n’ai pas encore trouvé de tableau de l’ordre des caractères lors d’un classement alphabétique (surtout pour les caractères spéciaux (*•%-–—$ etc.)).
Je pensais que le classement alphabétique ou “lexicographique” se basait sur la valeur Hexadecimal du caractère, mais à priori non! La valeur unicode non plus!

Si quelqu’un a une piste…

Offline

#8 2012-02-01 17:45:17

Niconemo
Member
From: Rhône-Alpes, France
Registered: 2005-04-18
Posts: 557

Re: [fr-fr] Tout sur l'attribut SORT

Edit. J’efface mon message…

Je propose de faire quelques tests, à la place, demain puisque je suis dedans en ce moment.

Last edited by Niconemo (2012-02-01 17:52:49)


Nico

Offline

#9 2012-02-02 14:58:03

Niconemo
Member
From: Rhône-Alpes, France
Registered: 2005-04-18
Posts: 557

Re: [fr-fr] Tout sur l'attribut SORT

OK, alors…

Pour le tri sur custom_n : asc
Arrivent en premier les articles avec le champ custom_n vide,
puis l’ordre alphanumérique croissant
(je fais en parallèle des tests sur cette notion d’ordre alphanumérique, voir post suivant)

Pour le tri sur custom_n : desc
Arrivent l’ordre alphanumérique décroissant
puis les articles avec le champ custom_n vide

donc

Pour ordonner les articles avec un système numérique, il faut :

Soit les numéroter tous par ordre croissant et trier en custom_n : asc.
Si on oublie un numéro dans le custom_n l’article apparait en premier dans l’ordre de tri par défaut ou avec la 2e clé de tri.
Très pratique pour un petit site, quasi statique, avec peu d’articles par catégories et des ajouts d’articles rares.

Soit numéroter seulement les plus important par ordre décroissant (les noter, en quelques sorte, du mieux noté au moins bien noté) et trier en custom_n : desc.
Les articles non notés apparaissent en dessous dans l’ordre de tri par défaut ou avec la 2e clé de tri.
Plus adapté pour un site très fourni où on veut gérer seulement l’ordre d’affichage des premiers articles avec un système plus pointu que le statut “sticky”.

Last edited by Niconemo (2012-02-02 15:11:32)


Nico

Offline

#10 2012-02-02 15:29:33

Niconemo
Member
From: Rhône-Alpes, France
Registered: 2005-04-18
Posts: 557

Re: [fr-fr] Tout sur l'attribut SORT

J’ai fait un certain nombre de tests pour déterminer quel est l’ordre alphanumérique :

°
#
$
&
(
*
+
-
.
001
01
02
1
2
;
?
@
A
à
a
C
c
ç
E
e
é
z
_
•

C’est assez curieux :
“ç” après “c” et “é” après “e“mais par contre “à” avant “a”
des caractères spéciaux et ponctuations au début, d’autres à la fin et d’autres au milieu, entre les chiffres et les lettres !
et ça n’est pas un classement de type ASCII ou UTF 8 (encore que c’est proche du 2e) où les bas de casse et capitales sont séparées.

Je me demande si ce n’est pas un classement propre à PHP ou à une fonction PHP

En tout cas il ne me parait pas pertinent d’utiliser autre chose que des lettres et des chiffres.

Last edited by Niconemo (2012-02-02 16:01:20)


Nico

Offline

#11 2012-02-02 15:57:37

sacripant
Plugin Author
From: Rhône — France
Registered: 2008-06-01
Posts: 479
Website

Re: [fr-fr] Tout sur l'attribut SORT

Idem, j’ai fait un test sur tous les caractère UNICODE LATIN base (de 0000 à 0080) ;) Je lis tes retours et complète au besoin.

J’y arriverais à l’écrire cet article lol

Offline

#12 2012-02-02 16:03:48

Niconemo
Member
From: Rhône-Alpes, France
Registered: 2005-04-18
Posts: 557

Re: [fr-fr] Tout sur l'attribut SORT

Ça ne serait pas un UTF-8 amélioré ?

C’est à dire avec juste les capitales, bas de casse et caractères accentués rassemblés. Mais tous les autres caractères dans l’ordre brut de la table ?

Ça me fait penser à un truc comme ça.

C’est probablement l’ordre par défaut de l’instruction order_by de SQL (et pas PHP) mais je n’arrive pas à trouver mieux…

Last edited by Niconemo (2012-02-02 16:10:08)


Nico

Offline

Board footer

Powered by FluxBB