Zum Inhalt springen

WP-Table-Reloaded mit manueller Sortierung

  • von

Für meinen erbsenzählerischen Vergleich europäischer Fußballligen habe ich wie jeder andere vernünftige Mensch auf das wunderbare WordPress-Plugin WP-Table-Reloaded von Tobias Bäthge gesetzt.

WPTR kann u.a. CSV-Dateien importieren und Werte in einer schicken HTML-Tabelle darstellen, die selbstverständlich mit CSS angepasst werden kann.

WPTR nutzt das geniale jQuery-Plugin DataTables, um Tabellenspalten ohne Reload klick- und sortierbar zu machen. Standardmäßig ist eine aufsteigende Sortierung implementiert (A-Z, 0-9), was in vielen Fällen Sinn ergibt, z.B. bei Listen mit Namen oder Produkten, die halt alphabetisch bzw. aufsteigend nach Preis sortiert werden sollen.

In meinem Fall allerdings ist eine komplette A-Z-Sortierung dämlich, da es sich um Fußball-Ranglisten handelt, bei denen der jeweils höchste Wert ganz oben stehen soll — zumindest in den meisten Fällen. Bei manchen Spalten allerdings, wie z.B. der Wahrscheinlichkeit von 0:0-Unentschieden, ist eine aufsteigende Sortierung sinnvoller. Es soll schließlich deutlich gemacht werden, dass Fußballligen mit geringer 0:0-Wahrscheinlichketi „besser“ sind.

Die Lösung für mein spezifisches Problem fand ich in der Dokumentation von DataTables (ach wirklich?), unter datatables.net/usage/columns. Dort heißt es:

asSorting – You can control the default sorting direction, and even alter the behaviour of the sort handler (i.e. only allow ascending sorting etc) using this parameter.

In den Tabelleneinstellungen von WP-Table-Reloaded gibt es unter „DataTables JavaScript Features“ den Punkt „Custom Commands“, so dass ich nicht mal in den JS-Dateien rumhacken muss. Meine Haupttabelle besteht aus 15 Spalten, von denen die sechste, achte und zehnte primär aufsteigend sortiert werden sollen, die anderen aber absteigend. Der Custom Command lautet in meinen Fall also:

"aoColumnDefs": [ { "asSorting": [ "desc", "asc" ], "aTargets": [0,1,2,3,4,6,8,10,11,12,13,14] } ]

Problem gelöst.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert