Ich habe eine Ansicht (Drupal 6 / Ansichten 2, aber ich denke, dies kann auch für andere Versionen gelten) als sortierbare Tabelle angezeigt. Ich kann wie bei allen Ansichten feste Sortierkriterien hinzufügen, aber sobald die Tabelle vom Besucher in einer bestimmten Tabelle sortiert ist, werden diese Sortierkriterien ignoriert.
In den Stiloptionen befindet sich ein Feld mit dem Namen "Normale Sortierung überschreiben, wenn Klicksortierung verwendet wird", was für mich keinen Sinn ergibt. Es scheint die Klicksortierung effektiv zu deaktivieren und dem Endbenutzer einen anklickbaren, aber nicht funktionierenden Tabellenkopf zu hinterlassen.
Gibt es eine Möglichkeit, die festen Sortierkriterien beizubehalten und als sekundäre Kriterien zu verwenden?
Wie andere schon sagten
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 in
sites/all/libraries/tablesorter
3. Fügen Sie
tablesorter
Ihren Views-Tabellen in template.php eine CSS-Klasse und eine eindeutige ID hinzu4. 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:
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.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 .
quelle
Entfernen Sie die "Standardsortierung" aus den Tabelleneinstellungen und verwenden Sie die "Sortierkriterien" für die erste und zweite Reihenfolge
quelle
Aus der Frage, die ich bekomme, geht hervor, dass Sie eine Tabellensortierfunktion in Ansichten wünschen. In diesem Fall können Sie die folgenden Schritte ausführen:
quelle
(D8)
Nach vielem Debuggen kam ich zu einem ähnlichen D7-Ansatz D7 hook_views_query_alter
Es läuft darauf hinaus , die ClickSort- Methode der Plugins für Tabellenstile auszulösen .
quelle
Bearbeiten Sie die Ansichten und gehen Sie zu den Tabelleneinstellungen. Dort sehen Sie das Kontrollkästchen Sortieren. Sie können es aktivieren und anwenden.
quelle
Dies ist meine Lösung in D7 / Views 3. Sie fügt der Abfrage eine letzte order_by-Klausel hinzu, falls diese noch nicht vorhanden ist. Ich glaube, Sie könnten sich den Parameter $ view ansehen und die Reihenfolge nach Spalten von dort aus hinzufügen, wenn Sie dies nicht statisch wie ich tun möchten.
quelle