Wie Node CCK-Feld als contextual Filter für Block verwenden?
am 10.01.2017 - 16:41 Uhr in
Hallo zusammen,
in einem content type "Publikation" gibt es ein cck_field "Verfasser". Zu einigen dieser Verfasser gibt es ein kurzes Portrait vom content type "Portrait", mit einem Feld Name.
Angenommen ich zeige jetzt Infos über eine Publikation unter node/25 , dessen Verfasser "Otto Meier" ist (nicht der Node-Ersteller!), dann soll ich in der rechten Spalte einen Block mit Inhalten des Autorenportraits anzeigen.
Den Views-Block dafür habe ich schon erstellt. Mir ist aber nicht klar wie ich den Contextual Filter dieses Blocks dazu bringe als Filter das CCK-Feld "Verfasser" des Node zu verwenden.
Wie verknüpfe ich denn "Name" <-> "Verfasser"?
Bin für jeden Tipp dankbar.
Rhodes
- Anmelden oder Registrieren um Kommentare zu schreiben
Der Block kann nur auf einem
am 10.01.2017 - 17:10 Uhr
Der Block kann nur auf einem Umweg an einen Kontextfilter kommen: "Was tun, wenn der Filter nicht vorhanden ist?" => Default Argument bereit stellen. Nun sind die auswählbaren Möglichkeiten in diesen Fall nicht ausreichend, da der Name nicht in der URL vorkommt. Also geht nur PHP-Code.
Darin läd man den Node mittels node_load($nid). Die Nid bekommt man, da die interne URL eines Nodes immer node/### lautet, über $path = current_path(), der dann node/### lautet. Über explode kann die NID ermittelt werden. Dann kann das Node-Objekt geladen werden und der Name aus dem Node-Feld mittels return an die View übergeben werden.
Ich empfehle dringend das Devel-Modul zu verwenden, um die interne Struktur des Nodes zu betrachten. Das Verfahren ist nicht furchtbar kompliziert, aber man sollte an der Stelle möglichst keine PHP-Fehler einbauen. Das gibt immer so unschöne weiße Seiten :-).
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
nimm doch wenigesten sin
am 10.01.2017 - 19:28 Uhr
nimm doch wenigesten sin beiden inhaltstypen das gleiche fled dann ist es einfacher. noch einfacher ist du refernezierst die andre seite direkt von dem ersten inhaltstypen
C.A.W. Webdesign
wla schrieb Also geht nur
am 11.01.2017 - 13:23 Uhr
Also geht nur PHP-Code. .
Ja leider, habs jetzt aber über den PHP Filter hinbekommen...