Wie andere schon sagten
Der integrierte Tabellensortiercode unterstützt weder das Sortieren mehrerer Spalten noch die Möglichkeit, einen Standardwert für absteigende statt aufsteigende Spalten zu definieren
Sie sollten sich jedoch den folgenden Ansatz mit Tablesorter ansehen.
Für D7:
1.Download und aktivieren Sie das Tablesorter-Modul
2.Downloaden und extrahieren Sie das Tablesorter jQuery Plugin insites/all/libraries/tablesorter
3. Fügen Sie tablesorter
Ihren Views-Tabellen in template.php eine CSS-Klasse und eine eindeutige ID hinzu
/**
* Preprocess variables for Views tables.
*/
function YOUR_THEME_preprocess_views_view_table(&$vars) {
$view = $vars['view'];
$vars['classes_array'][] = 'tablesorter';
$vars['attributes_array']['id'] = $view->name . '-' . $view->current_display;
}
4. Löschen Sie den Cache einige Male. Jetzt sollte Tablesorter bereits anfangen zu arbeiten. Sie werden es sehen, wenn sich das Styling geändert hat.
5.Für die sekundäre Sortierung müssen Sie ein kleines benutzerdefiniertes JavaScript hinzufügen. In template.php:
/**
* Override or insert variables for the page templates.
*/
function YOUR_THEME_preprocess_page(&$vars) {
// you might define some conditions around here
drupal_add_js(drupal_get_path('theme', 'YOUR_THEME') . '/scripts/custom_tablesort.js');
}
6. Schreiben Sie in dieses Skript Folgendes, um Tablesorter anzuweisen, die ersten sechs Spalten bestimmter Tabellen in aufsteigender alphabetischer Reihenfolge zu sortieren. Um Tablesorter anzuweisen, nur die zweite und dritte Spalte in aufsteigender Reihenfolge zu sortieren, schreiben Sie sortList: [[1,0], [2,0]]
stattdessen.
(function ($) {
Drupal.behaviors.tableSorting = {
attach: function (context, settings) {
$("#your_view_name-display_name").tablesorter({
sortList: [[0,0],[1,0],[2,0],[3,0],[4,0],[5,0]]
});
}
}
}) (jQuery);
Wenn Sie Tablesorter alle Ihre Tabellen sekundär sortieren lassen möchten, müssen Sie bei der Vorverarbeitung keine CSS-ID definieren und Tablesorter einfach mitteilen: $("table").tablesorter({ sortList: [[0,0],[1,0],[2,0],[3,0],[4,0],[5,0]] });
Nach ein wenig Test würde ich sagen, dass Sie jede benutzerdefinierte Tablesorter-Option weglassen (beenden Sie mit Schritt 4) und Ihren Benutzern einfach erklären, dass die shiftsekundäre Sortierung für jede gewünschte Spalte funktioniert , während Sie beim Klicken auf mehrere Überschriften gedrückt halten .