Contextual Filter: Andere Nodes anzeigen mit identischem field value aus current node
am 23.10.2016 - 16:46 Uhr in
Da ich nur sehr rudimentäre PHP (also fast keine) und wenig Drupal Kenntnisse habe, komme ich bei einer Sache nicht weiter. Folgender node z.B. aus meiner Seite:
Rechts werden 'Recent Places' angezeigt. Dort möchte ich aber Places anzeigen aus dem identischen Land wie dieser Place (das ist unser Haupt-Content Type) bzw. Node.
Meine Idee ist innerhalb des Views Contextual Filter zu benutzen. Also in Umgangssprache:
Zeige Places mit identischem Land (field country) wie dieser Place den Du dir gerade anschaust.
Dafür dachte ich, dass ich nehme (siehe Bildanhang):
- einen Contextual Filter mit Content: Country
- dann bei when the filter value is not available entsprechend PHP Code eintragen.
Jetzt fehlt mir natürlich der PHP der Code und die generelle Frage ob der Ansatz überhaupt richtig ist?
Danke schon mal :)
Anhang | Größe |
---|---|
cont_filter_place_smaller.png | 79.88 KB |
- Anmelden oder Registrieren um Kommentare zu schreiben
Ist die Seite mit Panels
am 25.10.2016 - 14:18 Uhr
Ist die Seite mit Panels (Node Template) gebaut? Falls ja, dann sollst du einen View (Block Variant) haben um den Parameter von Panels auswählen zu können und diesen als Contextual Filter für den Feld im Views weiterleiten kannst.
Falls nicht, in den Contextual Filters solltest du den $view und $argument variable haben die du mit Hilfe von dvm() (Devel Modul) darstellen kannst. Von den zweiten Option würde ich dich aber abraten.
There is a module for that :).
Hi,nein Du benötigst keinen
am 25.10.2016 - 17:12 Uhr
Hi,
nein Du benötigst keinen PHP Code das kannst Du ausmachen.
Der Contextual Filter oben rechts Content Country ist i.O.
Du musst dieses Feld auch bei Fields und Filter Criteria hinzufügen.
Dann kannst testen ob es funktioniert indem Du in:
Preview with contextual filters:
Einen Wert zum suchen Deines Countries eingibst.
Dann sollte es auch funktionieren wenn Du dien View mit /countryvalue aufrufst.
Gruss
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Hyp1 schriebHi,nein Du
am 01.11.2016 - 15:07 Uhr
Hi,
nein Du benötigst keinen PHP Code das kannst Du ausmachen.
Der Contextual Filter oben rechts Content Country ist i.O.
Du musst dieses Feld auch bei Fields und Filter Criteria hinzufügen.
Dann kannst testen ob es funktioniert indem Du in:
Preview with contextual filters:
Einen Wert zum suchen Deines Countries eingibst.
Dann sollte es auch funktionieren wenn Du dien View mit /countryvalue aufrufst.
Gruss
Robert
Sorry für die späte Antwort. Erstmal danke an beide!!
Also ich habe Country nun auch bei Filter Criteria hinzugefügt (nachvollziehbar :)). Bei Fields nicht, weil es soll ja nicht angezeigt werden in dem View.
Einen Country Wert dann bei Preview with contextual filters: ...... eingeben ging auch. Er hat mir bei DE z.B. nur deutsche Places angezeigt. Allerdings muss ich ja bei den Filter Criteria bei Country einen Operator und Wert eingeben. Da hatte ich probehalber einfach 'not empty' für den Test gemacht.
So, für mein Ziel: Jetzt müsste ich dort (Filter Criteria - Country) doch auch einen Filter mit Operator = Variable (o.Ä) eingeben. Weiß nur nicht was? Ich will ja nach wie vor nur die Places anzeigen, die in Country den gleichen Value haben wie der aktuelle Node. Siehe Anhang. Aber eigentlich müsste ich doch irgendwas im Contextual Filter machen. Denn habe ich einfach so gelassen wie oben bzw. auch mal rausgelöscht. Geht auch noch (also die fixen deutschen Places werden nach wie vor angezeigt).
Also mir fehlt jetzt das Wissen, was ich exakt bei den dem Filter Criteria - Content: Country UND bei Contextual Filter einstellen muss (weil so macht er ja nichts irgendwie)
Gruß,
Mickey
Hi, du musst evtl. das Feld
am 01.11.2016 - 16:41 Uhr
Hi,
du musst evtl. das Feld Content:Country von deinem Context Filter
zu den Fields hinzufügen (du kannst das Feld trotzdem ausblenden),
damit Du es im Filter auswählen kannst.
Gruss
Robert
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)
Hyp1 schrieb Hi, du musst
am 02.11.2016 - 14:56 Uhr
Hi,
du musst evtl. das Feld Content:Country von deinem Context Filter
zu den Fields hinzufügen (du kannst das Feld trotzdem ausblenden),
damit Du es im Filter auswählen kannst.
Gruss
Robert
Im Filter konnte ich es ja auswählen. Habs trotzdem mal als Feld hinzugefügt und exclude from display gemacht.
So, jetzt komme ich hier nicht weiter: siehe Anhang. Ich stelle mir vor, jetzt müsste ich sowas sagen können wie: is equal to 'country from current node'.
Oder ich muss ich mit dem Ansatz von fledev beschäftigen. Den habe ich allerdings noch weniger verstanden ;(
Hi, habe Dich wohl falsch
am 04.11.2016 - 02:04 Uhr
Hi,
habe Dich wohl falsch verstanden.
Den Exposed Filter Country kannst Du weglassen, da Du ja den Contextual Filter benutzt.
Du kannst dann in Preview with ContexualFilter den suchwert eingeben zum testen
Der Wert kommt dann später von der URL.
https://awri.ch
Ich habe eine Schweizer Tastatur und daher kein scharfes ß ;-)