NodeReference rückwärts?
Eingetragen von kev52 (423)
am 14.09.2007 - 23:31 Uhr in
am 14.09.2007 - 23:31 Uhr in
Ich arbeite zur Zeit viel mit dem CCK Nodereference Funktionen. Meine Frage. Erkennt ein Node, dass er von einem anderen referenziert wurde?
Ich würde gerne einen View erstellen, der alle Nodes zeigt, die NICHT von einem bestimmten Nodetyp referenziert wurden. Quasi jeder Node vom Typ A, der NICHT durch einen Node vom Typ B referenziert wurde. Geht so etwas?
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich weiß nicht, ob es mit
am 15.09.2007 - 13:33 Uhr
Ich weiß nicht, ob es mit Views geht, aber mit ner SQL-Abfrage gehts natürlich.
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay
Suchmaschinenoptimierung (SEO) & Drupal
quasi dann direkt in die
am 16.09.2007 - 12:59 Uhr
quasi dann direkt in die tpl.php oder?
http://www.deafvision.de
Z.B., ja. "I invented the
am 17.09.2007 - 07:49 Uhr
Z.B., ja.
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay
Suchmaschinenoptimierung (SEO) & Drupal
Du kannst ein View
am 17.09.2007 - 08:19 Uhr
Du kannst ein View erstellen, der einen Filter für die Ergebnisse beinhaltet (Node Typ ist KEINES von Typ A) und ein Argument hinzufügen (Nodereference: Field_XY), das mit dem Argument Handling Code "$args[0] = arg(1);" die entsprechende Liste von Nodes zurückliefert.
Beispiel: meine Redakteure stellen Artikel von Autoren ein, es gibt einen Nodetyp Artikel und einen Autor. (Die User sind in meinem Fall keine Autoren sondern Redakteure!) Im Nodetyp Artikel werden via CCK Nodereference Autoren-Nodes verlinkt. Ich habe mit oben beschriebenem View einen Block an den Nodetyp Autor gehängt, der beim Aufruf eines Autoren-Nodes alle Artikel liefert, die von dem entsprechenden Autor verfaßt wurden.
Ich habe nun eher das Problem anders herum: Ich brauche ein View, daß mir die Felder von Nodetyp Autor zurückliefert, wenn ich den Nodetyp Artikel aufrufe (also nicht nur ein Reference-Link). Vgl. http://www.drupalcenter.de/node/5330 - leider hat da bisher niemand eine Antwort :-(
Hoffe das war, was Du meintest,
Gruß Devr
Über die NodeID des
am 17.09.2007 - 09:19 Uhr
Über die NodeID des referenzierten Autors den Autor-Node laden und darstellen. Das ist nun wirklich eine eher triviale Übung. Oder habe ich etwas falsch verstanden?
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay
Suchmaschinenoptimierung (SEO) & Drupal
Möglicherweise ist das
am 18.09.2007 - 12:07 Uhr
Möglicherweise ist das trivial, aber ich bin neuer Drupal User und finde mich in das System gerade erst ein:
Was funktioniert ist:
Filter: nach Typ der Childnode
Argument: Node ID
$args[0] = 3; // 3 ist die nid der in der Parentnode referenzierten Childnode
Was ich leider nicht hinbekomme:
die nid der Childnode dynamisch aus der Parentnode auslesen. Ich dachte das ginge mit:
$args[0] = $node->field_irgendsoeinereferenz[0]['nid'];
Grüße, Devr
Du kannst den View nicht
am 18.09.2007 - 16:00 Uhr
Du kannst den View nicht allein übers Mausschubsen so detailliert gestalten. Du hast aber verschiedene Möglichkeiten ihn über eine eigene TPL-Datei, oder die template.php zu themen, oder aber auch erst im der node-xyz.tpl.php des vom View ausgelieferten Node Typs.
Darin kannste dann entsprechend auf die NID des referenzierten Nodes zugreifen und den Node laden:
$child = node_load($node->field_haumichblau[0]['nid']);
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay
Suchmaschinenoptimierung (SEO) & Drupal
Die Funktion node_load() war
am 19.09.2007 - 09:03 Uhr
Die Funktion node_load() war mir bis dato unbekannt, hatte ich zwischenzeitlich aber schon gefunden.
$node = node_load(arg(1));
$args[0] = $node->field_referenz_zu_childnode[0]['nid'];
Funktioniert soweit auch via Views ohne Eingriff in die Templates, mit dem Nachteil, daß keine multiblen Referenzen angezeigt werden.
pebosi hat noch einen interessanten Ansatz via viewfield angeregt, den ich parallel verfolgen werde, siehe http://www.drupalcenter.de/node/5330
Gruß, Devr
Ich bin da mehr ein Freund
am 19.09.2007 - 09:35 Uhr
Ich bin da mehr ein Freund des Codes. Als Software-Entwickler fühle ich mich da wohler, als in einem Mischmasch aus Klickibunti mit Code. Daher auch meine Abneigung gegen Contemplate ;)
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay
Suchmaschinenoptimierung (SEO) & Drupal
Von Klickibunti kann doch
am 19.09.2007 - 09:53 Uhr
Von Klickibunti kann doch bei Contemplate nicht die Rede sein, dort machst du doch nichts anderes als mit einer neuen node-typ.tpl.php Datei.
gruß pebosi
gruß pebosi
--
https://pebosi.net
also irgendwie passt es
am 20.09.2007 - 22:31 Uhr
also irgendwie passt es einfach nicht! laufen soll es im grund so:
1. ein admin erstellt eine liste themen
2. nun kann man als user sagen, okay ich will ein thema nehmen. er geht auf "Thema erstellen" und dort bekommt er eine Liste der Themen. Wenn er nun eines wählt, soll es eben für andere nicht mehr möglich sein das zu tun. Sprich alle Themen die referenziert wurden sollen aus der Auswahlliste wegfallen.
wie in etwa muss ich da ran gehen?
http://www.deafvision.de
gibt es da keinen Ansatz
am 22.09.2007 - 11:15 Uhr
gibt es da keinen Ansatz oder hab ich mich zu ungenau ausgedrückt?
http://www.deafvision.de
pebosi wrote:
am 22.09.2007 - 12:57 Uhr
Von Klickibunti kann doch bei Contemplate nicht die Rede sein, dort machst du doch nichts anderes als mit einer neuen node-typ.tpl.php Datei.
Das ist richtig, aber ich halte niht viel davon das Layout in einem Mischmasch aus DB-basiertem Code (via Contemplate) und Datei-basiertem Code wie TPL-Dateien zu beeinflussen. Wenn da niht sauber dokumentiert sucht man sich später mal nen Wolf und die beste Doku ist die, die nicht erstellt werden muss. "Convention over configuration", wie man u.a. bei Smalltalk und Ruby sagt.
@kev52:
Du hast doch über SQL alle Freiheiten, die du brauchst. Du lässt dir eine Liste der Themen liefern und gleichst die mit der Liste der vergebenen Themen ab. Man kann es über "SELECT ... WHERE ... NOT IN (...)" machen, oder vermutlich auch eleganter, aber mein SQL ist etwas eingerostet ;)
"I invented the term Object-Oriented, and I can tell you I did not have C++ in mind." -Alan Kay
Suchmaschinenoptimierung (SEO) & Drupal
dann werd ich das so machen,
am 22.09.2007 - 13:32 Uhr
dann werd ich das so machen, hatte nur gehofft, es gibt da eine Variante die über Views geklärt werden könnte. Danke an alle die sich Gedanken gemacht haben.
http://www.deafvision.de
Recherche bei drupal.org
am 22.09.2007 - 20:26 Uhr
Hast du es schon mal so versucht? http://drupal.org/node/161867
Ich werde es auch bald brauchen, kann aber noch ein paar Stunden/Tage dauern. :-)
ciao, Ronald
Reinblau eG