[erledigt] Anzeige von Feldern bei verknüpften Content?
am 24.05.2012 - 13:23 Uhr in
Hallo
beschäftige mich schon seit längerem mit einem fiesen Problem, bei dem ich einfach nicht weiterkomme.
Folgendes: Für unsere Homepage habe ich zwei Contenttypes erstellt - Abteilungen und Personal.
In 'Abteilungen' sind unsere 5 Standorte abgelegt und 'Personal' soll die einzelnen Mitarbeiter der Abteilungen beinhalten.
Der Contenttype Personal ist per Feldtyp "Reference Node" mit Abteilung verknüpft.
So weit, so gut.
Jetzt möchte ich aber gerne bei der Ausgabe der Nodes Personal, dass jedem Mitarbeiter die entsprechende Adresse seiner Abteilung angezeigt wird.
Node soll in etwa so aussehen:
Titel: Name des Mitarbeiters
Adresse der Abteilung (Feld aus dem Contenttype 'Abteilung')
Telefon
Bild des Mitarbeiters
usw.
Wie stelle ich das sinnvollerweise an? Bzw. geht so etwas überhaupt?
Wäre toll wenn jemand einen Ansatz für mich hat.
PS: Ich benutze Drupal 7
- Anmelden oder Registrieren um Kommentare zu schreiben

Mach es mittels des Modul
am 24.05.2012 - 13:56 Uhr
Mach es mittels des Modul [do:views Views]. Damit erzeugst Du eine Datenabfrage. Du legst eine Beziehung fest über das Node-Referenz-Feld. Dann kannst Du auch auf die Felder des referenzierten Nodes durchgreifen. Wenn Du bisher noch nicht mit Views gearbeitet hast, empfehle ich Dir die Videotutorials von NodeOne zu dem Thema. Es braucht ein bißchen Zeit bis man darin zu hause ist.
Beste Grüße
Werner
Hallo Werner, Views benutze
am 24.05.2012 - 14:41 Uhr
Hallo Werner,
Views benutze ich schon. Kam damit auch bisher immer gut zurecht.
Leider weiß ich nicht, wie es mir in diesem Fall weiterhelfen kann. Habe schon einiges ausprobiert, bisher ohne entsprechendes Ergebnis.
Danke für den Video-Link. Da hatte ich auch schon das ein oder andere mal geschaut. Leider bin ich aber immer noch nicht schlauer.
Probiere jetzt erstmal weiter, auch mit Views, vlt komm ich ja noch drauf.
Gruß
Mark
Wenn du eine View
am 24.05.2012 - 20:46 Uhr
Wenn du eine View bearbeitest, findest du unter "Advanced" (das ist normalerweise eingeklappt) den Punkt "Relationships". Hier wählst du die Relation aus, die durch Nodereference angelegt wird. Dann musst du (wahrscheinlich) noch unter Filter die Bedingungen für die Relation angeben. Wenn du jetzt Felder auswählst, kannst du bei den Feldern angeben, aus welcher Relation das Feld stammen soll.
Diese Möglichkeit ist mir in
am 29.05.2012 - 12:59 Uhr
Diese Möglichkeit ist mir in Views auch bekannt. (Habe Sie auch ausprobiert!) Leider erfüllt sie wie gesagt nicht meinen Zweck, da ich ja mit Hilfe von Views dann nur einen neuen Block bzw. eine Page erzeuge.
Meine Überlegung war eigentlich nur zwei Nodes mit einander zu verbinden, referenzieren, so dass der eine Node bestimmte Felder des anderen Node anzeigen kann (ohne das ich diese Felder im zweiten Node nochmal aufnehmen muss / ich einen Block mit den entsprechenden Feldern anzeigen muss).
Nach weiteren Recherchen im Internet habe ich jetzt das Modul "Relation" für Drupal 7 gefunden. Dabei werden zwischen Nodes Beziehungen hergestellt, welche man mit Feldern hinterlegen kann. Ist allerdings auch etwas komplex, und ich versuche mich gerade da reinzuarbeiten.
danke erstmal für deine Antwort,
vlt hat ja noch jemand Erfahrung mit Relation und kann mir dazu einen Tipp geben?
Relation kenne ich nicht,
am 30.05.2012 - 14:24 Uhr
Relation kenne ich nicht, aber wenn die erzeugte Relation (mit Feldern) keine Drupal-Entity ist, kannst du das Vergessen. Ich weiß auch nicht, wie dir das Modul helfen soll, da du ja bereits eine Relation (ohne Felder) zwischen zwei Nodes hast
Dir hilft aber sicher viewfield. Erstelle deine View so, dass sie eine Nid als Parameter bekommt (die des Nodes, in dem die Felder des referenzierten Feldes angezeigt werden sollen). Dann legst du im referenzierenden Node ein neues Feld vom Typ view an und konfigurierst es so, dass das Argument immer [nid] ist. Wenn du dann die Anzeige des Feldes richtig konfigurierst, werden die Felder des referenzierten Nodes (ausder View) im referenzierenden Node angezeigt.