Node Reference / Node Referrer + Views
am 23.09.2011 - 14:20 Uhr in
Hallo Freunde,
ich habe 2 Inhaltstypen. A (parent) und B (child). B refferenziert per "Node Reference" auf A. In jeden Inhaltstypen gibt es nur jeweils ein Image-Field.
Ich habe nun einen Parent-Node (mit einem Bild) und 2 darauf referenzierende Child-Nodes mit jeweils einem Bild. Ich möchte nun per Views jeweils das Bild von Parent (A) und (darunter) die dazugehörigen Bilder der Childs (B) ausgeben. Dazu setze ich "Node Referrer" ein um das Refferenz-Feld als "Beziehung" in Views nutzbar zu machen.
Jetzt bekomme ich folgende Ausgabe:
Das Problem hierbei ist, vor jedem Child-Image wird mir immer das dazugehörige (gleiche) Parent-Image angegezeigt (also doppelt). Ich benötige aber das Parent-Image nur EINMAL (oben) und darunter sollen dann beide Child-Images ausgegeben werden.
so wie hier ....
Leider schaffe ich es nicht die Child-Images zu "gruppieren".
Mein View-Einstellung:
Könnte mir vielleicht jemand einen Tip geben wie ich das Problem lösen könnte?
Danke und viele Grüße
Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben
Argumente
am 23.09.2011 - 15:08 Uhr
Hi
wenn ich dich richtig verstehe bist du auf node/123 und das ist der Parent. Auf diesem möchtest du alle Childs anzeigen, die auf diesen zeigen. Das ist sehr einfach. Du musst ein Argument in den View einbauen und an dieses die Node ID des Parent übergeben. Such bitte mal nach Views und Argumente. Dafür gibt es hier tonnenweise Beispiele.
Viele Grüße,
Kars-T
Hallo Kars,danke für die
am 23.09.2011 - 15:37 Uhr
Hallo Kars,
danke für die Rückmeldung.
Ich habe mehrere Parent-Nodes und für jeden Parent-Node gibt es ein oder meherer Childnodes.
Ich will jetzt einen View als "Page" erstellen auf der ALLE Parent-Nodes (bilder) mit den dazugehörigen Childs(Bildern) angezeigt werden.
Der View soll also nicht direkt auf dem Parent-Node angezeigt werden (als Argument kann ich also nicht die Node-ID verwenden) sondern unter einem eigenen Pfad.
Um das anschaulicher zu machen.
Ich möchte die Funktionalität von 4chan.org nachbauen.
Bsp: http://boards.4chan.org/tv/
Im Mainbereich gibt es links das (große) Parent-Bild und rechts daneben bzw. darunter (im dunkleren blau) gibt es (kleinere) Child-Bilder (+ Child-Textnachrichten). Genau das will ich nachbauen.
ich schaffe es jetzt nur nicht, dass Parent-Bild EINMAL auszugeben und daneben/dahinter alle dazugehörigen Child-Node (Bilder). Momentan wird vor JEDEM Child-Bild immer das Parent-Bild davor gesetzt. Wenn ich also 10 Child-Bilder habe, bekomme ich auch das Parent-Bild 10mal angezeigt. Ich brauche es aber nur einmal ganz am Anfang (siehe 2ter Screenshot oben oder siehe 4chan.org). Ich müsste also die Child-Bilder "gruppieren" können um sie ans Parent-Bild "anhängen" zu können (o.ä.).
So soll der View als "Page" aussehen:
Parent1
---Child-bild1
---Child-bild2
---Child-bild3
---Child-bild4
Parent 2
---Child-bild1
---Child-bild2
---Child-bild3
---Child-bild4
Parent 3
---Child-bild1
---Child-bild2
---Child-bild3
---Child-bild4
usw.
Views gibt es mir aber momentan so aus.
Parent1
---Child-bild1
Parent1
---Child-bild2
Parent1
---Child-bild3
Parent1
---Child-bild4
Parent2
---Child-bild1
Parent2
---Child-bild2
Parent2
---Child-bild3
Parent2
---Child-bild4
usw.
Big Grübel!
Drupal rockt!!!
Preprocess
am 23.09.2011 - 15:42 Uhr
Auf die Gefahr hin, das dereine mich schlägt:
Ich würde dann ein views_embed_view() im Preprocess des Views Parent Item einbauen und mir so die Kinder zusammenziehen. Die Gruppierung ist soweit ich weiß nicht trivial mit Views selbst nicht zu machen. Von daher ist meine Meinung das in die Theming Schicht auszulagern und dann die Daten dort zusammen zu ziehen. Musst aber schauen, das dir das die Leistung nicht tötet. Vielleicht kannst du was cachen. Musst mal schauen.
Viele Grüße,
Kars-T
Danke Kars.ich habe schon
am 23.09.2011 - 15:55 Uhr
Danke Kars.
ich habe schon vermutet, dass das nicht so einfach geht.
Ein weiterer Ansatz wäre, dass ich das "Parent-Field-Template" des Views nehme und das Parent-Bild in eine Schleife packe und nur beim ersten Row ausgebe, ab dem zweiten Row wird es nicht mehr ausgegeben. Somit werden ab dem 2ten Row nur noch die Childs angezeigt.
Ich probiere das mal aus.
Für weitere Vorschläge bin ich aber weiterhin offen.
Nochmals danke Kars!
Drupal rockt!!!
Gruppierung in PHP
am 23.09.2011 - 17:50 Uhr
Klar kannst du diese Art von Gruppierung auch in PHP machen. Aber ich bin mir dabei nicht sicher, was mehr speicher verbraucht. Wenn du redundant immer alle Daten ziehst, dann braucht das halt auch mehr Speicher für das Ergebnis. Und du kannst die Kinder nicht einzeln cachen. Du könntest ja für die Kinder einen Count query machen und dir merken wieviele es vorher waren. Stimmt das nimmst du den Cache. Damit müsstest du nur einmalig den Parent per View ziehen. Alles Denkansätze. Musst schauen, was passt.
Viele Grüße,
Kars-T