Help:Sorting/fr

From Meta, a Wikimedia project coordination wiki
Other languages:

Manuel de MediaWiki : I. LecteursII. ÉditeursIII. 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 &301711242123 24 Mar 2024 01:02:03 &301711242123 010203 &301711242123 010203 1711242123
1/2 &301704153600 02 Jan 2024 00:00:00 &301704153600 1/2 &301704153600 1/2 1704153600
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
20240324105342 &301711277622 24 Mar 2024 10:53:42 &301711277622 20240324105342 &301711277622 20240324105342 1711277622
yesterday &301711152000 23 Mar 2024 00:00:00 &301711152000 yesterday &301711152000 yesterday 1711152000
today &301711238400 24 Mar 2024 00:00:00 &301711238400 today &301711238400 today 1711238400
tomorrow &301711324800 25 Mar 2024 00:00:00 &301711324800 tomorrow &301711324800 tomorrow 1711324800
1week &301711882423 31 Mar 2024 10:53:43 &301711882423 1week &301711882423 1week 1711882423
-1week &301710672823 17 Mar 2024 10:53:43 &301710672823 -1week &301710672823 -1week 1710672823
1day &301711364023 25 Mar 2024 10:53:43 &301711364023 1day &301711364023 1day 1711364023
-1day &301711191223 23 Mar 2024 10:53:43 &301711191223 -1day &301711191223 -1day 1711191223
1month &301713956023 24 Apr 2024 10:53:43 &301713956023 1month &301713956023 1month 1713956023
-1month &301708772023 24 Feb 2024 10:53:43 &301708772023 -1month &301708772023 -1month 1708772023
1year &301742813623 24 Mar 2025 10:53:43 &301742813623 1year &301742813623 1year 1742813623
-1year &301679655223 24 Mar 2023 10:53:43 &301679655223 -1year &301679655223 -1year 1679655223
1000year &333268186423 24 Mar 3024 10:53:43 &333268186423 1000year &333268186423 1000year 33268186423
10000month &328008759223 24 Jul 2857 10:53:43 &328008759223 10000month &328008759223 10000month 28008759223
1000000day &388111277623 19 Feb 4762 10:53:43 &388111277623 1000000day &388111277623 1000000day 88111277623
10000000hour &337711277623 09 Jan 3165 02:53:43 &337711277623 10000000hour &337711277623 10000000hour 37711277623
1000000000minute &361711277623 21 Jul 3925 21:33:43 &361711277623 1000000000minute &361711277623 1000000000minute 61711277623
100000000000second &401711277623 06 Feb 5193 20:40:23 &401711277623 100000000000second &401711277623 100000000000second 101711277623
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 &242068580023 24 Mar 0134 10:53:43 &242068580023 -1890year &242068580023 -1890year -57931419977
Mon &301711324800 25 Mar 2024 00:00:00 &301711324800 Mon &301711324800 Mon 1711324800
Tue &301711411200 26 Mar 2024 00:00:00 &301711411200 Tue &301711411200 Tue 1711411200
Wed &301711497600 27 Mar 2024 00:00:00 &301711497600 Wed &301711497600 Wed 1711497600
Thu &301711584000 28 Mar 2024 00:00:00 &301711584000 Thu &301711584000 Thu 1711584000
Fri &301711670400 29 Mar 2024 00:00:00 &301711670400 Fri &301711670400 Fri 1711670400
Sat &301711756800 30 Mar 2024 00:00:00 &301711756800 Sat &301711756800 Sat 1711756800
Sun &301711238400 24 Mar 2024 00:00:00 &301711238400 Sun &301711238400 Sun 1711238400
&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

Other languages: