Help:Sorting/fr

From Meta, a Wikimedia project coordination wiki
Jump to navigation Jump to search
Langues:
Noto Emoji Pie 1f4da.svg

Manuel de MediaWiki : I. Lecteurs - II. Éditeurs - III. Administrateurs

Index | Guide pour le manuel | Principes éditoriaux | MediaWiki | +/-


Vous pouvez créer des tables en utilisant sortable via client-side JavaScript avec class="sortable" (en combinaison du formatage usuel : class="wikitable sortable"). Ceci fonctionne à partir de la version MediaWiki 1.9, qui est installées sur tous les projets Wikimedia.

Une table "triable" se reconnait par les flêches qui apparaissent sur chacune des cellule de titre de colonnes. Cliquer dessus trie les colonnes de la table selon l'ordre croissant des données de la colonne sélectionnée, chaque clique successif inverse l'ordre de tri. Les liens et autres "wiki-marqueurs" sont interdit dans les cellules de titre.

JavaScript[edit]

Le code Javascript jquery.tablesorter.js (source) du "trieur de table" est chargé par "ResourceLoader". Certains sites proposent une page MediaWiki:Common.js qui ajoute et reformule une partie du code. Le navigateur doit prendre en charge Javascript et doit autoriser le fonctionnement des fonctions tri.

Modes de tri[edit]

Depuis la version 1.16.5, la façon dont les items sont triés dépend du type de donnée des items de la première colonne. Ceci concerne la cellule supérieure de la colonne dans les deux sens de tri, croissant et décroissant. Pour déterminer le type de donnée, plusieurs cellules sont testées et le format le mieux approprié est retenu. Des erreurs sont possible. L'ordre de tri d'une colonne peut Être forcé. Voir la section relative plus loin.

Les marqueurs comme span ou sup sont ignorés lors du choix du type de donnée.

Dates[edit]

De nombreux formats de date sont supportés, notamment ceux qui utilisent le nom local des mois. Sur Wikipédia francophone, "16 mars 2010" est trié correctement selon 2010-03-16.

D'autres formats de date sont accèptés, notamment ceux utilisant des séparateurs différents comme . , ' ou / . Sur le site Wikipedia anglophone, les dates sont traitées selon le format "US-Dates" par défaut (eg. month-day-year).

Nombres[edit]

Le script reconnait les nombres utilisant comme séparateur pour les décimales le point "." et la virgule "," ; il reconnait les symboles "e" et "E" comme "exposant".

However, numbers will be sorted alphanumerically (with 9 sorted after 10) unless this default behaviour is overridden. (See below.)

Texte[edit]

Le texte est trier selon l'ordre ASCII (les caractères accentués apparaissent après l'alphabet latin basique). Ceci peut être modifié pour l'ensemble du site en ajoutant le code suivant sur la page common.js

mw.config.set('tableSorterCollation', {'ä':'ae', 'ö' : 'oe', 'ß': 'ss', 'ü':'ue'});

Après quoi, tous les 'ä' seront triés comme s'ils étaient 'ae' etc.

Liste partielle montrant l'ordre de tri par défaut : !"#$%&'()*+,-./09:;<=>?@[\]^_'az{|}~é—

Mode de tri[edit]

Forcer le mode de tri pour une colonne. Le mode de tri peut être modifié manuellement en introduisant le code data-sort-type à l’intérieur de la cellule de titre de la colonne. Cette fonctionnalité s'appuie sur tablesorter.com. Les valeurs suivantes sensibles à la casse, sont les modes de tri valides :

  • text
  • number
  • IPAddress
  • currency
  • url
  • isoDate
  • usLongDate
  • date
  • time

Exemple:

{|class="wikitable sortable"
! data-sort-type="date" | Date!!Name!!Height!!data-sort-type="number" |Salary 
|-
|01.10.1977||Smith||1.85||1,000.000
|-
|11.6.1972||Ray||1.89||900.000
|-
|1.9.1992||Bianchi||1.72||2,000.50
|}
Date Name Height Salary
01.10.1977 Smith 1.85 1,000.000
11.6.1972 Ray 1.89 900.000
1.9.1992 Bianchi 1.72 2,000.50

Exemples[edit]

La première colonne démontre comment les chiffres sont détectés et triés comme des nombres. La seconde colonne montre que grâce au code data-sort-type="number" dans l'en-tête de la colonne permet d’améliorer la reconnaissance des nombres. Le code !class="unsortable"| désactive le tri de la troisième colonne. La quatrième colonne montre que le code data-sort-value="…" definit une valeur numérique, indépendamment du contenu de la cellule.

numbers data-sort-type="number" data-sort-type="number"
-8e3 -8 e3 -8 e3
-3e-3 -3 e-3 -3 e-3
2.000 2-5 km² data-sort-value="3.5" 2-5 km²
3.99 3.99 km² 3.99 km²
4 4 km² 4 km²
90 % 90 Percent data-sort-value="90" about 90 Percent
1E2 100[1] 100[1]
1,000,000.0 1 000 000.0 data-sort-value="1e6" one Million

Le séparateur des milliers (ici ",") et le séparateur décimal (ici "."), dépendent du langage défini dans la configuration du logiciel MediaWiki (c-à-d dépend du langage du site).

Les symboles de devises avant ou après les chiffres ainsi que le symbole pour les pourcentage "%" seront triés comme des valeurs numériques.

currencies
$ 9
$ 80
$ 70
$ 600
currencies
9 €
80 €
70 €
600 €
currencies
£ 9
£ 80
£ 70
£ 600
currencies
¥ 9
¥ 80
¥ 70
¥ 600
percent
9 %
80 %
70 %
600 %
numbers
−7e270
-1.4285714285714E-13
999e9
7e270

Clé de tri secondaire[edit]

Il est possible de trier la colonne A (clé de tri primaire), puis pour chaque valeur équivalente de la colonne A, trier selon la colonne B (clé de tri secondaire) : cliquez d'abord sur le bouton de ri de la colonne A (une ou deux fois), ensuite en maintenant la touche shift enfoncée, cliquez sur le bouton d etri de la colonne B (une ou deux fois).

Exemple :

Cliquez sur la colonne Text puis en enfonçant la touche Shift du clavier, cliquez sur Numbers, you observez les données triées selon la colonne "Text" (première clé) puis la colonne "Numbers" (seconde clé).


Numbers Text Dates Currency More text
4 a 01.Jan.2005 4.20 row 1
5 a 05/12/2006 7.15 row 2
1 b 02-02-2004 5.00 row 3
1 a 02-02-2004 5.00 row 4
2 x 13-apr-2005 row 5
2 a 13-apr-2005 row 6
3 a 17.aug.2006 6.50 row 7
3 z 25.aug.2006 2.30 row 8
3 z 28.aug.2006 5.50 row 9
3 z 31.aug.2006 3.77 row 10
3 z 01.sep.2006 1.50 row 11
Bottom

Fonctions complémentaires[edit]

Exclure la dernière ligne[edit]

Il est parfois utile d'exclure la dernière ligne de la table du processus de tri. Vous pouvez réaliser cela en déclarant la dernière ligne de votre tableau comme suit.

Syntaxe wiki (repérez l'usage des symboles '!' en rouge) :

{|class="wikitable sortable"
!Name!!Surname!!Height
|-
|John||Smith||1.85
|-
|Ron||Ray||1.89
|-
|Mario||Bianchi||1.72
|-
! !!Average:||1.82
|}

Ce qui produit le tableau suivant dans votre navigateur :

Name Surname Height
John Smith 1.85
Ron Ray 1.89
Mario Bianchi 1.72
Average: 1.82

Exclure la première ligne du tri[edit]

La même technique peut s'employer pour la première ligne, en utilisant la même notation "!!!"

Name Surname Height
Average: 1.82
John Smith 1.85
Ron Ray 1.89
Mario Bianchi 1.72
Average: 1.82

Désactiver le tri pour une colonne[edit]

Si vous souhaitez empêcher le tri d'une colonne, spécifiez class="unsortable" dans les attributs de cette cellule de titre.

Syntaxe wiki :

{|class="wikitable sortable"
!Numbers!!Alphabet!!Dates!!Currency!!class="unsortable"|Unsortable
|-
|1||Z||02-02-2004||5.00||This
|-
|2||y||13-apr-2005||||Column
|-
|3||X||17.aug.2006||6.50||Is
|-
|4||w||01.Jan.2005||4.20||Unsortable
|-
|5||V||05/12/2006||7.15||See?
|-
!Total: 15!!!!!!Total: 29.55!!
|-
|}

Ce qui produit le tableau suivant dans votre navigateur :

Numbers Alphabet Dates Currency Unsortable
1 Z 02-02-2004 5.00 This
2 y 13-apr-2005 Column
3 X 17.aug.2006 6.50 Is
4 w 01.Jan.2005 4.20 Unsortable
5 V 05/12/2006 7.15 See?
Total: 15 Total: 29.55 Original example

Garder certaines lignes jointes[edit]

Si vous souhaitez garder un ligne jointe, qui soit toujours sous la même ligne précédente, quelque soit le mode de tri, ajoutez class="expand-child" aux attributs de cette ligne.

Syntaxe wiki:

{| class="wikitable sortable"
! style="width:9em"| Country !!data-sort-type="number"| Area
|-
| France
| 674 843 km²
|- class="expand-child" style="font-size:85%; line-height:1.2; color:gray"
| colspan="2" | In Paris is the Eiffel Tower.
|-
| U.K.
| 242 495 km²
|- class="expand-child" style="font-size:85%; line-height:1.2; color:gray"
| colspan="2" | In the U.K. you cannot pay with euros.
|- class="expand-child" style="font-size:85%; line-height:1.2; color:gray"
| colspan="2" | And you drive on the left side of the road.
|-
| Germany
| 357 168 km² 
|- class="expand-child" style="font-size:85%; line-height:1.2; color:gray"
| colspan="2" | Germany includes the former DDR.
|}

Ce qui produit le tableau suivant dans votre navigateur :

Country Area
France 674 843 km²
In Paris is the Eiffel Tower.
U.K. 242 495 km²
In the U.K. you cannot pay with euros.
And you drive on the left side of the road.
Germany 357 168 km²
Germany includes the former DDR.

Spécifier une clé de tri[edit]

Parfois la valeur d'une cellule n'est pas interprétée correctement (voir parser) ou bien vous souhaiterez trier la ligne de façon spéciale et particulière. (ex. la cellule contenant "John Doe" devrait être triée selon "Doe" et non selon "John") Ceci se réalise en configurant l’attribut data-sort-value.

Note, ceci fait l'objet d'une nouvelle fonctionnalité HTML5, qui est activée par défaut sur MediaWiki (incluant les wikis Wmf depuis Sept. 2012 voir bugzilla:27478).

Syntaxe wiki :

{|class="wikitable sortable"
!Name and Surname!!Height
|-
|data-sort-value="Smith, John"|John Smith||1.85
|-
|data-sort-value="Ray, Ian"|Ian Ray||1.89
|-
|data-sort-value="Bianchi, Zachary"|Zachary Bianchi||1.72
|-
!Average:||1.82
|}

Ce qui donne :

Name and Surname Height
John Smith 1.85
Ian Ray 1.89
Zachary Bianchi 1.72
Average: 1.82

L'acienne methode consistait à configurer des clés de tri cachées avec w:Template:Sort. Voir aussi Help:Sorting#Specifying a sort key sur mediawiki.org.

Si vous utilisez comme data-sort-value la même valeur que sur la ligne précédente, cela permet de garder les deux lignes jointes, l'ordre de ces deux lignes est préservé. Une meilleure méthode pour obtenir le même résultat consiste à utiliser l'attribut "class expand-child", voir plus haut [#Garder certaines lignes jointes]].

Exemple où data-sort-value est utilisé dans le cas de la cellule "Netherlands" :

{|class="wikitable sortable" !Country/province!!Capital |- |France||Paris |- |Netherlands||Amsterdam |- |data-sort-value=Netherlands|South Holland||data-sort-value=Amsterdam|The Hague |- |U.K.||London |}

Country/province Capital
France Paris
Netherlands Amsterdam
South Holland The Hague
U.K. London

Special dates[edit]

For years BC we can use, for example, !9937-09-23 for -0062-09-23 (subtract the year number BC from 10000, or the absolute value of the astronomical year from 9999).

If a table column contains any or all incomplete dates, this will not cause sorting problems. If only a year and month are given, that incomplete date is positioned alphabetically before the first day of the month in question. Likewise, if only a year is given, the date is positioned before the first month or day given for that year.

Use of #time[edit]

Using parser function #time we can put <span style="display:none">&{{#expr:3e11+{{#time:U|..}}}}</span> in front of the displayed date. This works in the range 1 Jan 111, 00:00:00 through 31 Dec 9999, 23:59:59 for the proleptic Gregorian calendar. The added value makes all values positive and the same length (if scientific format would show up an additional step is needed to prevent this). The "&" forces string sort mode.

Dates and times can be entered in any php date/time format. Note that when we have just a year, a month (typically Jan) must be added in the hidden part.

Example using Help:Sorting/date:

input date text date and time as interpreted, with hidden sortkey input with visible sortkey input with hidden sortkey Unix time
010203 &301670547723 09 Dec 2022 01:02:03 &301670547723 010203 &301670547723 010203 1670547723
1/2 &301641081600 02 Jan 2022 00:00:00 &301641081600 1/2 &301641081600 1/2 1641081600
1/2/3 &301041465600 02 Jan 2003 00:00:00 &301041465600 1/2/3 &301041465600 1/2/3 1041465600
1-2-2003 &301044057600 01 Feb 2003 00:00:00 &301044057600 1-2-2003 &301044057600 1-2-2003 1044057600
1-2-3 &300981158400 03 Feb 2001 00:00:00 &300981158400 1-2-3 &300981158400 1-2-3 981158400
2007 &301167609600 01 Jan 2007 00:00:00 &301167609600 2007 &301167609600 2007 1167609600
1 Jan 111, 00:00:00 &241335609600 01 Jan 0111 00:00:00 &241335609600 1 Jan 111, 00:00:00 &241335609600 1 Jan 111, 00:00:00 -58664390400
31 Dec 9999, 23:59:59 &553402300799 31 Dec 9999 23:59:59 &553402300799 31 Dec 9999, 23:59:59 &553402300799 31 Dec 9999, 23:59:59 253402300799
Sep 1970 &300020995200 01 Sep 1970 00:00:00 &300020995200 Sep 1970 &300020995200 Sep 1970 20995200
1970 &300000000000 01 Jan 1970 00:00:00 &300000000000 1970 &300000000000 1970 0
Jun 2007 or later &301180656000 01 Jun 2007 00:00:00 or later &301180656000 Jun 2007 or later &301180656000 Jun 2007 or later 1180656000 or later
Jun 2007 perhaps earlier &301180656000 01 Jun 2007 00:00:00 perhaps earlier &301180656000 Jun 2007 perhaps earlier &301180656000 Jun 2007 perhaps earlier 1180656000 perhaps earlier
2007-6 &301180656000 01 Jun 2007 00:00:00 &301180656000 2007-6 &301180656000 2007-6 1180656000
Jun 2007 &301180656000 01 Jun 2007 00:00:00 &301180656000 Jun 2007 &301180656000 Jun 2007 1180656000
4 Jun 2007 &301180915200 04 Jun 2007 00:00:00 &301180915200 4 Jun 2007 &301180915200 4 Jun 2007 1180915200
3 Jul 2007 &301183420800 03 Jul 2007 00:00:00 &301183420800 3 Jul 2007 &301183420800 3 Jul 2007 1183420800
12 Aug 2006 &301155340800 12 Aug 2006 00:00:00 &301155340800 12 Aug 2006 &301155340800 12 Aug 2006 1155340800
1 Mar 2006 -1day &301141084800 28 Feb 2006 00:00:00 &301141084800 1 Mar 2006 -1day &301141084800 1 Mar 2006 -1day 1141084800
1 Mar 2008 -1day &301204243200 29 Feb 2008 00:00:00 &301204243200 1 Mar 2008 -1day &301204243200 1 Mar 2008 -1day 1204243200
1 Mar 2010 -1day &301267315200 28 Feb 2010 00:00:00 &301267315200 1 Mar 2010 -1day &301267315200 1 Mar 2010 -1day 1267315200
1 Mar 1900 -1day &297796022400 28 Feb 1900 00:00:00 &297796022400 1 Mar 1900 -1day &297796022400 1 Mar 1900 -1day -2203977600
1 Mar 1600 -1day &288329001600 29 Feb 1600 00:00:00 &288329001600 1 Mar 1600 -1day &288329001600 1 Mar 1600 -1day -11670998400
Jun 1607 &288557875200 01 Jun 1607 00:00:00 &288557875200 Jun 1607 &288557875200 Jun 1607 -11442124800
20221209204345 &301670618625 09 Dec 2022 20:43:45 &301670618625 20221209204345 &301670618625 20221209204345 1670618625
yesterday &301670457600 08 Dec 2022 00:00:00 &301670457600 yesterday &301670457600 yesterday 1670457600
today &301670544000 09 Dec 2022 00:00:00 &301670544000 today &301670544000 today 1670544000
tomorrow &301670630400 10 Dec 2022 00:00:00 &301670630400 tomorrow &301670630400 tomorrow 1670630400
1week &301671223425 16 Dec 2022 20:43:45 &301671223425 1week &301671223425 1week 1671223425
-1week &301670013825 02 Dec 2022 20:43:45 &301670013825 -1week &301670013825 -1week 1670013825
1day &301670705025 10 Dec 2022 20:43:45 &301670705025 1day &301670705025 1day 1670705025
-1day &301670532225 08 Dec 2022 20:43:45 &301670532225 -1day &301670532225 -1day 1670532225
1month &301673297025 09 Jan 2023 20:43:45 &301673297025 1month &301673297025 1month 1673297025
-1month &301668026625 09 Nov 2022 20:43:45 &301668026625 -1month &301668026625 -1month 1668026625
1year &301702154625 09 Dec 2023 20:43:45 &301702154625 1year &301702154625 1year 1702154625
-1year &301639082625 09 Dec 2021 20:43:45 &301639082625 -1year &301639082625 -1year 1639082625
1000year &333227527425 09 Dec 3022 20:43:45 &333227527425 1000year &333227527425 1000year 33227527425
10000month &327968100225 09 Apr 2856 20:43:45 &327968100225 10000month &327968100225 10000month 27968100225
1000000day &388070618625 05 Nov 4760 20:43:45 &388070618625 1000000day &388070618625 1000000day 88070618625
10000000hour &337670618625 26 Sep 3163 12:43:45 &337670618625 10000000hour &337670618625 10000000hour 37670618625
1000000000minute &361670618625 07 Apr 3924 07:23:45 &361670618625 1000000000minute &361670618625 1000000000minute 61670618625
100000000000second &401670618625 25 Oct 5191 06:30:25 &401670618625 100000000000second &401670618625 100000000000second 101670618625
7980year &Expression error: Unexpected < operator. Error: #time only supports years up to 9999. &Expression error: Unexpected < operator. 7980year &Expression error: Unexpected < operator. 7980year Error: #time only supports years up to 9999.
-1890year &242028007425 09 Dec 0132 20:43:45 &242028007425 -1890year &242028007425 -1890year -57971992575
Mon &301670803200 12 Dec 2022 00:00:00 &301670803200 Mon &301670803200 Mon 1670803200
Tue &301670889600 13 Dec 2022 00:00:00 &301670889600 Tue &301670889600 Tue 1670889600
Wed &301670976000 14 Dec 2022 00:00:00 &301670976000 Wed &301670976000 Wed 1670976000
Thu &301671062400 15 Dec 2022 00:00:00 &301671062400 Thu &301671062400 Thu 1671062400
Fri &301670544000 09 Dec 2022 00:00:00 &301670544000 Fri &301670544000 Fri 1670544000
Sat &301670630400 10 Dec 2022 00:00:00 &301670630400 Sat &301670630400 Sat 1670630400
Sun &301670716800 11 Dec 2022 00:00:00 &301670716800 Sun &301670716800 Sun 1670716800
&Expression error: Unexpected < operator. Error: Invalid time. &Expression error: Unexpected < operator. &Expression error: Unexpected < operator. Error: Invalid time.
unknown &Expression error: Unexpected < operator. Error: Invalid time. &Expression error: Unexpected < operator. unknown &Expression error: Unexpected < operator. unknown Error: Invalid time.

To use dates before the year 111, add a multiple of 400, e.g. 6000, to all years, this effectively shifts the range to 1 Jan -5889, 00:00:00 through 31 Dec 3999, 23:59:59, without changing the calendar.

See also:

  • w:Template:Dts - sorting a table by a date column
  • Template:Sd - shows weekday in a separate column before date, and link all dates

Cellules fusionnées ligne/colonne multiple[edit]

Une cellule qui s'étend sur plusieurs lignes ou colonnes (cellules fusionnées) et traité comme si il s'agissait de plusieurs cellules avec la même valeur.

rowspan
Date Name Height
01.10.1977 Smith 1.85
11.06.1972 Adams
01.09.1992 Bianchi 1.72
colspan
A B C
A 2 1
B 1 3
C 2

Depuis la version 1.26 wmf23 (Sept. 2015), le tri des cellules fusionnées horizontalement fonctionne correctement. En conséquence les cellules "manquantes" en fin de la ligne, seront considérées lors du premier tri comme des cellules vides

Cellules fusionnées horizontalement (colspan)[edit]

L’auto-détection du mode de tri pour les cellules fusionnées horizontalement se fait pour chaque colonne séparément. Définir le mode de tri en utilisant data-sort-type dans la cellule de titre ; détermine le mode de tri pour toutes les colonnes sur lesquelles s'étend la cellule fusionnée.

Pour utiliser des clés de tri distinctes pour chaque colonne d'une cellule fusionnée horizontalement, utilisez le CSS hack décrit ici : Pour autoriser le tri, le nombre formel de cellules dans chaque ligne devrait être égal (en cas contraire, toutes... If not, all columns become sortable. This should apply at least for the number of cells up to and including the last sortable column.)

Néanmoins, avec CSS hack le nombre de cellules affiché dans une ligne peut différer du nombre normal de cellule. Par exemple, deux cellules peuvent être montrées comme une seule en modifiant la largeur de la première colonne, en étendant le contenu de la seconde cellule sur la gauche, augmentant ainsi sa largeur, et en cachant les bordures de la cellule de gauche. Les clés de tri cachées peuvent être utilisées pour contrôler l'ordre de tri de certaines lignes en respectant chaque colonne.

Exemple :

Country Capital
France Paris
Z M
Sorting with respect to the first column this row sorts like Z, with respect to the second column like M
U.K. London

Contrôler le tri et l'affichage[edit]

Texte indésirable lors du tri mais utile lors de l'affichage :

  • Mode de tri numérique, le tri fonctionne correctement même lorsque la cellule contient du texte après les chiffres (ex. "200 approx"), à l'exception de la cellule de la première ligne de données. Les cellules vides sont traitées comme des valeurs "zero". Voir Help:Sorting/countries. Néanmoins garde à l'esprit que la cellule de la première ligne de données changera en fonction de l’ordre de tri. Si cette cellule ne contient pas uniquement des chiffres après le tri, le mode de tri changera. Par exemple, si la cellule de la première ligne de données devient "200 approx" après le tri, cela modifiera le mode de tri en alphabétique.
  • Mode de tri date, le texte doit Être placé dans une colonne séparée ; dans le cas d'une cellule contenant une période date ou numérique (ex. de .. à ..). le texte inutile au tri est placé dans des colonnes supplémentaires. Si la première partie est utilisée pour le tri, alors la colonne extra doit suivre celle-là, inversement si la deuxième partie est utilisée pour le tri la colonne extra doit précéder celle-là. En fonction du format de votre table, scinder un item en deux cellules peut aboutir un résultat décevant.
  • Mode de tri alphabétique trier des note ou informations complémentaires ne nécessite pas une colonne séparée ; placez simplement les notes à la suite de l’élément.

Colonne statique[edit]

Une colonne statique, ex, avec les numéros de lignes, peut être placée par le biais de deux tables côte à côte ; avec pour chacune la même hauteur configurée (height) sur chaque de ligne.

Number
1
2
Country Capital
The Netherlands Amsterdam (although The Hague is the seat of government)
France Paris

Vous pouvez ajuster le style pour donner l'aspect d'une seule table. Cependant si la hauteur des lignes devient insuffisante pour afficher le contenu d'une cellule sur l'une des tables ; le navigateur augmentera la hauteur de la ligne et l'apparence des tables ne correspond plus.

Ordre de tri par défaut[edit]

Il n'est pas possible de produire une table triée selon une colonne définie sans que l'utilisateur clique sur le titre de la colonne. Par défaut, les lignes d'une table apparaissent dans l'ordre de saisie du wikitext. Si vous souhaitez voir une table afficher le contenu trié selon une même colonne, vous devez trier le wikitext lui-même lors de la saisie dans l'ordre désiré. Voir à la section suivante une méthode pour réaliser cela.

Trier le wikitext de la table[edit]

Trier le wikitext lui-même, permet de créer un nouvel ordre de tri par défaut, et peut être réaliser de façon semi-automatique. Prenez le wikitext de la table sans les lignes supérieures et inférieures (si nécessaire). Utilisez la fonction "chercher et remplacer" pour remplacer les séparateurs de cellules par un code particulier ne contenant pas de barre verticale "|". Si vous avez des barres verticales au sein de vos cellules, remplacez les par un code quelconque, puis remplacez ce code par une nouvelle ligne (symbole de début de ligne "|-"). Appliquez mw:Module:Sort (voir mw:Module talk:Sort) sur mw:Special:ExpandTemplates en ajoutant :

{{#invoke:Sort|f|{{!}}-
{{!}}

(avec la nouvelle ligne) devant, et }} après le wikitext, pour trier les items entre les barres verticales, avec le séparateur souhaité pour le résultat. Excluez les items contenant "-" au début. Restaurez les séparateurs de cellules (éventuellement les barres verticales à l’intérieur des cellules) en remplaçant votre code temporaire. Ajouter de nouveau les lignes supérieures et inférieures.

Cette méthode tri le wikitext des lignes, en principe selon la première colonne (et la seconde comme clé de tri secondaire).

Voir Help:Sorting#Maintaining tables sorted by rank pour trier les tables selon une colonne différente.

Utiliser JavaScript pour initialiser un tri de table côté client[edit]

Une extention de MediaWiki:Common.js peut s'employer pour trier une table automatiquement sur la partie client lors du chargeent d ela page (comme si l'utilisateur avait cliqué sur le titre d'une colonne). L'exemple ci-dessous tri toutes les tables d'un ensemble de pages selon le contenu de la première colonne (voir la documentation [mw:Tablesorter|Tablesorter]] pour la syntaxe).

Note : Ceci semble désactiver le tri pour l'utilisateur, en cliquant sur les titres de colonnes. Le tri en ordre croissant continue de fonctionner mais le deuxième clique n'effectue pas le tri décroissant


function isSortedTablePage() {
    return ( wgPageName == "Page_To_Sort"  || wgPageName == "Other_Page_To_Sort" );
}

jQuery( document ).ready( function( $ ) {
    // wrapped in "mw.loader.using" so this doesn't execute until Tablesorter has loaded
    mw.loader.using( 'jquery.tablesorter', function() {
        if( isSortedTablePage() ) $('table.sortable').tablesorter( {sortList: [ { 0: 'asc'} ]} )
        // or look for tables with an ID attribute of "sortMe" on any page
        // $( '#sortMe' ).tablesorter( {sortList: [ { 0: 'asc'} ]} )
    } );
} );

Ordre de tri alphabétique basique[edit]

demo
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
0
9
:
;
<
=
>
?
@
[
\
]
^
_
`
A
Z
a
z
A1
Z1
a1
z1
{
|
}
~
É
é
É1
é1

Les entrées comprenant deux caractères comme "A1" démontrent que "A" et "a" occupent la même position.

This is not a fully alphabetic sort order: letter case is first folded to lowercase using a basic 1-to-1 conversion table (limited to the Basic Multilingual Plane of Unicode, and whose coverage and completeness still depends on browser versions and on their current implementation of the versioned Unicode Character Database), but letters with diacritics (and all other digits, symbols or special whitespaces or format control characters) will still sort according to the binary encoding of the casefolded letter, using the binary order of the UTF-16 code units (exposed and seen in Javascript through the parsed HTML DOM), but not the binary order of UTF-8 code units in the HTML page, and not of codepoints as one could also expect for encoded characters in supplementary planes).

In addition, no normalization of the Unicode text is being performed (so canonically equivalent strings, that should compare equal or with only very minor binary difference, may sometimes compare very far away, with completely different strings interleaved between them). For this reason, MediaWiki pages should always be encoded with their text in the Normalized Form C (preComposed), as recommended in the HTML standards.

As of today, an UCA-based sort is still not implemented in the client-side Javascript code, but some wikis are implementing a limited form of multilevel collation using custom basic replacement rules tuned for specific languages.

Solution serveur[edit]

Il a été observé que le code du serveur MediaWiki remplace l'espace régulier avant "!" par un espace insécable &#160;, qui affecte l'ordre de tri. Pour résoudre ceci, les espaces peuvent être codés &#32;, ou le point d'exclamation peut être encadré par les tags <nowiki> et </nowiki>. Cela est permet de se conformer à la typographie française qui utilise un espace (de préférence étroit) avant (et parfois après) le point d'exclamation (ainsi que d'autres signes de ponctuation). L'espace doit être insécable lorsqu'il est effectivement nécessaire et présent, la substitution est réalisée en tant que facilité d'édition pratique du code wiki pour les cas fréquents concernant de nombreux textes.

Tri persistant utilisant des cookies[edit]

Ajouter le sous-programme suivant à votre page MediaWiki:Common.js rend les tables "triable" capable de mémoriser l'état du tri, de telle sorte qu'elles apparaitront de la même façon lors de prochaines visites. Chaque table "triable" doit avoir un identifiant unique (id) comme attribut pour que leur état puisse être enregistré dans le cookie.

addOnloadHook( function() {
    jQuery('.sortable').each( function() {
        var id = jQuery(this).attr('id');
        document.shCookie = getCookie('sortheader-'+id);
        document.sortheaderId = 0;
        jQuery('#'+id+' a.sortheader').each( function() {
            var id = jQuery(this).parent().parent().parent().parent().attr('id');
            var sh = document.sortheaderId++;
            if( sh+100 == document.shCookie ) { ts_resortTable(this); ts_resortTable(this); }
            if( sh == document.shCookie ) { ts_resortTable(this); sh += 100; }
            jQuery(this).bind('click', {id: id, sh: sh}, function(e) {
                setCookie('sortheader-'+e.data.id, e.data.sh, 1);
                e.data.sh += e.data.sh < 100 ? 100 : -100;
            });
        });
    });
});

function setCookie(c_name,value,exdays) {
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
}

function getCookie(c_name) {
    var i,x,y,ARRcookies=document.cookie.split(";");
    for (i=0;i<ARRcookies.length;i++) {
        x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
        y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
        x=x.replace(/^\s+|\s+$/g,"");
        if (x==c_name) return unescape(y);
    }
}

Voir aussi[edit]


Exemples :


Consultation : Bouton consulter | Recherche | URL | Espace de noms | Nom de page | Section | Lien | Pages liées | Lien redirigé | Lien interwiki | Redirection | Catégorie | Page spéciale

Suivre les modifications : Modifications récentes | (améliorées) | Suivi des liens | Liste de suivi | Historique | Différences | Contributions | Résumé des modifications | Modification mineure | Modifications surveillées

Inscription et préférences : Enregistrement | Préférences | Personnalisation

Édition : Édition | Syntaxe wiki | Démarrer une page | Images et fichiers | Page d'image | Caractères spéciaux | Formules | Tableaux | Listes | Frise chronologique | Boîte d'entrée | Modèle | Renommer une page | Raccourcis d'édition | Éditeurs externes | Page de discussion | Tester | Export | Import |

Toutes les pages d'aide sur : Meta | Wikipédia | SdL

modifier ce cadre

Langues: