Help:Sorting/fr
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.
|
|
|
|
|
|
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 | 24 Mar 2024 01:02:03 | &301711242123 010203 | 010203 | 1711242123 | |
1/2 | 02 Jan 2024 00:00:00 | &301704153600 1/2 | 1/2 | 1704153600 | |
1/2/3 | 02 Jan 2003 00:00:00 | &301041465600 1/2/3 | 1/2/3 | 1041465600 | |
1-2-2003 | 01 Feb 2003 00:00:00 | &301044057600 1-2-2003 | 1-2-2003 | 1044057600 | |
1-2-3 | 03 Feb 2001 00:00:00 | &300981158400 1-2-3 | 1-2-3 | 981158400 | |
2007 | 01 Jan 2007 00:00:00 | &301167609600 2007 | 2007 | 1167609600 | |
1 Jan 111, 00:00:00 | 01 Jan 0111 00:00:00 | &241335609600 1 Jan 111, 00:00:00 | 1 Jan 111, 00:00:00 | -58664390400 | |
31 Dec 9999, 23:59:59 | 31 Dec 9999 23:59:59 | &553402300799 31 Dec 9999, 23:59:59 | 31 Dec 9999, 23:59:59 | 253402300799 | |
Sep 1970 | 01 Sep 1970 00:00:00 | &300020995200 Sep 1970 | Sep 1970 | 20995200 | |
1970 | 01 Jan 1970 00:00:00 | &300000000000 1970 | 1970 | 0 | |
Jun 2007 | or later | 01 Jun 2007 00:00:00 or later | &301180656000 Jun 2007 or later | Jun 2007 or later | 1180656000 or later |
Jun 2007 | perhaps earlier | 01 Jun 2007 00:00:00 perhaps earlier | &301180656000 Jun 2007 perhaps earlier | Jun 2007 perhaps earlier | 1180656000 perhaps earlier |
2007-6 | 01 Jun 2007 00:00:00 | &301180656000 2007-6 | 2007-6 | 1180656000 | |
Jun 2007 | 01 Jun 2007 00:00:00 | &301180656000 Jun 2007 | Jun 2007 | 1180656000 | |
4 Jun 2007 | 04 Jun 2007 00:00:00 | &301180915200 4 Jun 2007 | 4 Jun 2007 | 1180915200 | |
3 Jul 2007 | 03 Jul 2007 00:00:00 | &301183420800 3 Jul 2007 | 3 Jul 2007 | 1183420800 | |
12 Aug 2006 | 12 Aug 2006 00:00:00 | &301155340800 12 Aug 2006 | 12 Aug 2006 | 1155340800 | |
1 Mar 2006 -1day | 28 Feb 2006 00:00:00 | &301141084800 1 Mar 2006 -1day | 1 Mar 2006 -1day | 1141084800 | |
1 Mar 2008 -1day | 29 Feb 2008 00:00:00 | &301204243200 1 Mar 2008 -1day | 1 Mar 2008 -1day | 1204243200 | |
1 Mar 2010 -1day | 28 Feb 2010 00:00:00 | &301267315200 1 Mar 2010 -1day | 1 Mar 2010 -1day | 1267315200 | |
1 Mar 1900 -1day | 28 Feb 1900 00:00:00 | &297796022400 1 Mar 1900 -1day | 1 Mar 1900 -1day | -2203977600 | |
1 Mar 1600 -1day | 29 Feb 1600 00:00:00 | &288329001600 1 Mar 1600 -1day | 1 Mar 1600 -1day | -11670998400 | |
Jun 1607 | 01 Jun 1607 00:00:00 | &288557875200 Jun 1607 | Jun 1607 | -11442124800 | |
20240324105342 | 24 Mar 2024 10:53:42 | &301711277622 20240324105342 | 20240324105342 | 1711277622 | |
yesterday | 23 Mar 2024 00:00:00 | &301711152000 yesterday | yesterday | 1711152000 | |
today | 24 Mar 2024 00:00:00 | &301711238400 today | today | 1711238400 | |
tomorrow | 25 Mar 2024 00:00:00 | &301711324800 tomorrow | tomorrow | 1711324800 | |
1week | 31 Mar 2024 10:53:43 | &301711882423 1week | 1week | 1711882423 | |
-1week | 17 Mar 2024 10:53:43 | &301710672823 -1week | -1week | 1710672823 | |
1day | 25 Mar 2024 10:53:43 | &301711364023 1day | 1day | 1711364023 | |
-1day | 23 Mar 2024 10:53:43 | &301711191223 -1day | -1day | 1711191223 | |
1month | 24 Apr 2024 10:53:43 | &301713956023 1month | 1month | 1713956023 | |
-1month | 24 Feb 2024 10:53:43 | &301708772023 -1month | -1month | 1708772023 | |
1year | 24 Mar 2025 10:53:43 | &301742813623 1year | 1year | 1742813623 | |
-1year | 24 Mar 2023 10:53:43 | &301679655223 -1year | -1year | 1679655223 | |
1000year | 24 Mar 3024 10:53:43 | &333268186423 1000year | 1000year | 33268186423 | |
10000month | 24 Jul 2857 10:53:43 | &328008759223 10000month | 10000month | 28008759223 | |
1000000day | 19 Feb 4762 10:53:43 | &388111277623 1000000day | 1000000day | 88111277623 | |
10000000hour | 09 Jan 3165 02:53:43 | &337711277623 10000000hour | 10000000hour | 37711277623 | |
1000000000minute | 21 Jul 3925 21:33:43 | &361711277623 1000000000minute | 1000000000minute | 61711277623 | |
100000000000second | 06 Feb 5193 20:40:23 | &401711277623 100000000000second | 100000000000second | 101711277623 | |
7980year | Error: #time only supports years up to 9999. | &Expression error: Unexpected < operator. 7980year | 7980year | Error: #time only supports years up to 9999. | |
-1890year | 24 Mar 0134 10:53:43 | &242068580023 -1890year | -1890year | -57931419977 | |
Mon | 25 Mar 2024 00:00:00 | &301711324800 Mon | Mon | 1711324800 | |
Tue | 26 Mar 2024 00:00:00 | &301711411200 Tue | Tue | 1711411200 | |
Wed | 27 Mar 2024 00:00:00 | &301711497600 Wed | Wed | 1711497600 | |
Thu | 28 Mar 2024 00:00:00 | &301711584000 Thu | Thu | 1711584000 | |
Fri | 29 Mar 2024 00:00:00 | &301711670400 Fri | Fri | 1711670400 | |
Sat | 30 Mar 2024 00:00:00 | &301711756800 Sat | Sat | 1711756800 | |
Sun | 24 Mar 2024 00:00:00 | &301711238400 Sun | Sun | 1711238400 | |
Error: Invalid time. | &Expression error: Unexpected < operator. | Error: Invalid time. | |||
unknown | Error: Invalid time. | &Expression error: Unexpected < operator. unknown | 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.
|
|
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 |
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.
|
|
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  
, qui affecte l'ordre de tri.
Pour résoudre ceci, les espaces peuvent être codés  
, 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]
- Help:Table/fr
- mw:Help:Sorting
- Sortable collapsible table
- w:Category:Sorting templates Catégorie Wikipedia pour les modèles de tri
- jquery.tablesorter.js - code de tri javascript sur Phabricator
- phab:tag/mediawiki-jquery-tablesorter/ Tablesorter Workboard for bugs and improvments - Phabricator
- http://www.kryogenix.org/code/browser/sorttable/ - Détails sur la version originale du code par Stuart Langridge
- mw:Extension:Sort2 génère des listes triées à partir de listes existantes.
Exemples :
- w:Ranked list of Dutch provinces
- w:List of countries by GDP estimates for 2006 (nominal)
- w:List of countries by GDP (PPP), 2006
- w:List of longest reigning current monarchs - date columns are sortable for people with "no preference" for date formatting, and for people with preference [[YYYY-MM-DD]].
- Pokémon table - prefixes numbers with "#" to have them before "-".
- Nuclear power by country (Featured List)
- w:Desert Island Discs: castaways' choices
- zh:秘鲁行政区划 (Subdivisions of Peru) for sorting of Chinese (CJK)
- w:Standard electrode potential (data page)
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 | |