[gelöst] Ein Filter/Sortierelement für mehrere Felder

am 10.07.2013 - 08:26 Uhr in
Hallo zusammen,
ich bin gerade dabei, mit einem/einer View eine Liste von Produkten zu erstellen,
bei denen jedes einzelne Produkt 22 Eigenschaften besitzt, die von 0-9 bewertet
werden können.
Intern werden diese Eigenschaften über Felder vom Typ Liste (integer) abgebildet.
So, jetzt meine Anforderung bzw. mein Problem:
Ich möchte gerne auf dieser Übersichtsseite einen Filter ergänzen, über den sich
eine Eigenschaft auswählen lässt, damit sich anschließend alle Produkte, ausgehend
von dieser Eigenschaft, in absteigender Reihenfolge sortieren lassen - also Produkte
mit Eigenschaft X = 9 -> ganz oben, mit Eigenschaft Z = 0 -> ganz unten.
Geht das irgendwie? Vielleicht bereits schon über eine Views-Einstellung?
--------------------------------------------------------------------------------
Noch schnell eine andere Frage:
Wie übertrage ich am besten einen Variablen-Wert von der einen Drupal-Seite zur
anderen?
Also ich habe eine View mit einem Link (z.B. inkl. Node ID) und möchte gerne auf
diese Information (nid) auf der nächsten Seite zugreifen (damit ich ein Produkt ganz
oben in der Liste anzeigen kann).
Gibt es da bei Drupal eine elegante Lösung? Oder muss ich auf reine PHP-Funktionen
zurückgreifen?
--------------------------------------------------------------------------------
Ich hoffe, mir kann jemand weiterhelfen...
Schöne Grüße, Axel
- Anmelden oder Registrieren um Kommentare zu schreiben
Zu Frage 1: Wenn Du die
am 12.07.2013 - 07:54 Uhr
Zu Frage 1:
Wenn Du die Produkte in der View als Tabelle abbildest, dann kannst Du ja dafür sorgen, daß man durch Klick auf den Tabellen-Namen diese Spalte sortieren kann.
Wäre das nicht das, was Du brauchst?
Zu Frage 2:
Die Node-ID steht ja als Parameter oben in der URL zur Verfügung.
Auch wenn Du mit einem Alias als Seitennamen arbeitest.
Auf die Parameter kannst Du mit arg(0), arg(1) ect. zugreifen.
Im Beispiel:
www.meinedrupalseite.de/node/123
wäre arg(0) "node" und arg(1) "123".
Vielen Dank montviso für
am 16.07.2013 - 08:17 Uhr
Vielen Dank montviso für deine Antworten!
Zu Frage 1:
Prinzipiell von der Funktion her wäre das, was ich bräuchte - allerdings in der falschen Form.
Ich würde gerne über ein separates Element, also über eine Dropdown-Liste, die immer, getrennt von den Produkten, ganz
oben auf der Seite steht, die Produkte sortieren lassen.
Oder wäre es eine gute Idee, eine einfache Dropbdown-Liste selbst zu erstellen und die Auswahl irgendwie an Drupal zu
schicken, damit ich über den View darauf zugreifen kann?
Zu Frage 2:
Danke für den Hinweis mit arg(0), arg(1) ect. Leider konnte ich das so doch nicht machen, weil dann das
Modul Menu Trail By Path, das ich für meine Untermenüs benutze, nicht mehr die active-Klasse setzt.
Deshalb habe ich mir erstmal über die Funktion request_uri() alle URL-Teile besorgt, um an den Node ID-
Parameter der Form products?nid=4711 zu kommen. Wahrscheinlich geht das nicht besser??? Oder
gibt es bereits eine Funktion, die mir fertige Get-Parameter der Form key => value zurückliefert?
Zu Frage 1:Sicher kannst Du
am 16.07.2013 - 08:40 Uhr
Zu Frage 1:
Sicher kannst Du Dir so ne Dropdownbox bauen:
Die Sort-Order wird ja als GET-Parameter übergeben.
Du kannst Dir bei meiner Nährstofftabelle ansehen, was passiert, wenn Du auf so eine Überschrift klickst:
http://www.sobio.de/naehrstoffe-mineralien/82?title=&order=field_eisen_m...
Beispiel: es wird nach Eisen absteigend sortiert.
Die Dropdownbox kannst Du ja einfach bauen und als Block über der View anzeigen.
Im Grundgenommen könntest Du auch eine einfache Linkliste statt Dropdowns anbieten, ansonsten eben im Formular als Methode GET verwenden.
Ob es dafür etwas Fertiges gibt, weiß ich nicht.
Zu Frage 2 muß ich auch passen, keine Ahnung, ob es sowas fertig gibt.
An dieser Stelle noch einmal
am 17.07.2013 - 13:25 Uhr
An dieser Stelle noch einmal vielen Dank für die Hilfestellungen.
Ich habe jetzt für meine Anforderungen die perfekte Lösung gefunden.
Für alle, die es interessiert und ähnliche Anforderungen haben:
Wenn man als SORTIERKRITERIUM alle Felder, nach denen sortiert werden soll,
hinzufügt
und
wenn man die Better Exposed Filters installiert, kommt genau das dabei raus,
was ich mir gewünscht bzw. was ich benötigt habe:
Eine Dropdown-Liste mit allen Feldern, über die sich jeweils die Produkte nach
dem Feldwert aufsteigend oder absteigend sortieren lassen.
In den BEF-Settings kann man das Verhalten zusätzlich so einstellen, dass der
Submit-Button ausgeblendet und die Liste automatisch sortiert wird, sobald
man ein Feld angeklickt hat.
Perfekt!