Nodereference Fragezeichen
am 15.11.2008 - 12:48 Uhr in
Hallo zusammen,
möchte folgendes erreichen:
-Inhaltstyp Veranstaltungsort
-Inhaltstyp Termin
Beim erstellen eines Termins soll der User einen Veranstaltungsort zuordnen können.
Das klappt schon mittels Nodereference-Feld in Termin.
In der Ansicht des Termins sollen nun Felder aus Veranstaltungsort eingebunden werden + z.B. das Benutzerbild vom Autor des V-Ortes.
Das klappt nicht, es erscheint immer nur der Name des V-Ortes. Ich dachte diese Ausgabe kann ich verändern indem ich eine View erstelle als Grundlage für mein Nodereference-Feld. Allerdings verändert das nur das Formular beim Erstellen eines Termins, nicht in der Anzeige...
Ist das überhaupt der richtige Weg so? Kennt jemand eine Anleitung für D6? Oder kann mir das erklären, ich schreibe dann ein Tutorial - versprochen. :-)
Merci
- Anmelden oder Registrieren um Kommentare zu schreiben
Du kannst in Views
am 15.11.2008 - 13:32 Uhr
Du kannst in Views (Ansichten) unter Beziehungen auswählen, dass z.B. ein Nodereference-Feld oder in Deinem Fall "Beitragsversion:Benutzer" (vormals User, um alles,was mit dem User, der den Terminbeitrag oder die Veranstaltung eingegeben hat, darzustellen) genommen werden soll.
Unter Felder kannst Du dann Felder aus beiden Inhaltstypen wählen/kombinieren, wenn Du angibts, dass die und ggf. welche Beziehung verwendet werden soll.
Template fuer Inhaltstyp Termin <|> Nodeobject, Userobject
am 15.11.2008 - 13:34 Uhr
In einem Nodetype Template fuer Inhaltstyp Termin sollte man eine Info bekommen auf den referenzierten Node vom Typ Veranstaltungsort.
Wenn ich also im Nodetype Template Termin die ID der refenzierten Node kenne kann ich mittels node_load() das Nodeobject der refenzierten Node laden. Dann habe ich nicht nur Zugriff auf alle Felder dieser Node sondern auch auf die Daten des Author dieser Node.
Wenn man nun noch mittels CCK den Inhaltstyp Termin derart erweitert das beim Erstellen einer Termin Node mittels Selectbox festgelegt werden kann ob das Benutzerbild vom Autor des V-Ortes angezeigt werden soll oder nicht kann man diesen Wert im Nodetype Template Termin vor dem laden des Nodeobject der refenzierten Node abfragen:
Bild zeigen -> Nodeobject laden und weitere Aktionen zur Anzeige des Bildes (Bild vom Author der Veranstaltungsort Node ($node->uid) holen)
Bild nicht zeigen -> Nodeobject nicht laden und keine weitere Aktion
Mittels des Userobjectes kommt man schnell an ein Userbild ran. Das Userobject kann man mittels $node->uid laden.
Um es verwenden zu koennen muss man das Userobject der refenzierten Veranstaltungsort Node laden.
<?php
// Nodeobject der refenzierten Node laden
$ref_node = node_load('node-id_der_refenzierten_node');
// Userobject der refenzierten Node laden
$ref_user = user_load($ref_node->uid);
// das Userbild des Author der refenzierten Node
$ref_user_picture = $ref_user->picture;
?>
Achtung: Beim Laden des Node- und Userobjectes NICHT die Variablennamen $node und $user verwenden. Da hier die Objecte einer anderen Node geladen werden wuerde man sich damit die Objecte der aktuellen Node ueberschreiben.
Um die ID der refenzierten Node zu erfahren koennte man sich das Nodeobject der Node die refenziert ansehen.
PS
Mit dem Node- und Userobject der refenzierten Node hat man eigentlich Zugriff auf alle Daten dieser Node.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Vielen Dank! Tutorial ist in
am 17.11.2008 - 13:26 Uhr
Vielen Dank!
Tutorial ist in Arbeit :-)
-----------
Luca Curella
Kooperative Netze - Berlin