Rekursive Referenzliste erzeugen
Eingetragen von headkit (514)
am 23.01.2008 - 13:42 Uhr in
am 23.01.2008 - 13:42 Uhr in
Hi Leute!
Wie kann man in einer Node in einem Block eine Liste aller Nodes anzeigen, die selber eine Referenz zu dieser zur Zeit dargestellten Node besitzen?
Die zu listenden nodes besitzen also alle eine CCK-Referenz zu einer Node anderen Typs...
Danke!
- Anmelden oder Registrieren um Kommentare zu schreiben
Das sollte mit dem Modul
am 23.01.2008 - 16:33 Uhr
Das sollte mit dem Modul "Views" und em "Viewfield" machbar sein.
gruß pebosi
gruß pebosi
--
https://pebosi.net
danke. aber wie
am 23.01.2008 - 17:51 Uhr
danke.
aber wie funktioniertd as dann? fragt das viewvield dann alle nodes ab, ob sie zur host-node referenzieren?
ich habs ausprobiert.
am 24.01.2008 - 17:05 Uhr
ich habs mal ausprobiert.
nette sache, aber nicht das, was ich brauche.
die revers referenzierung soll in einem block dargestellt werden.
headkit schrieb Wie kann
am 24.01.2008 - 22:22 Uhr
Wie kann man in einer Node in einem Block eine Liste aller Nodes anzeigen, die selber eine Referenz zu dieser zur Zeit dargestellten Node besitzen?
Die zu listenden nodes besitzen also alle eine CCK-Referenz zu einer Node anderen Typs...
Ah, mein Lieblingsthema. :-)
Schau dir mal dieses Modul an: http://drupal.org/project/ReferencedByFilter
Hab ich selbst allerdings noch nicht getestet.
Ich hab es bisher immer so gemacht:
http://drupal.org/node/70145
Und dort speziell der erste Kommentar. Kleiner Trick, große Wirkung. :-)
ciao, Ronald
Reinblau eG
das modul sieht interessant
am 29.01.2008 - 12:09 Uhr
das modul sieht interessant aus, vielen dank!
leider sehe ich nicht, wie man dessen output in einen block verfrachten kann.
:-(
aber der zweite tip war gold wert!
danke!!!
:-)
ohne views
am 29.01.2008 - 12:14 Uhr
und nochmal dein lieblingsthema:
wie komme ich denn an die mit der node referenzierten inhalte ohne die hilfe von views? ich möchte gerne einem block mittels block.tpl.php die entsprechenden NIDs übergeben, die zur geöffneten node referenziert wurden.
danke!
Da hilft dir glaub nur eine
am 29.01.2008 - 13:16 Uhr
Da hilft dir glaub nur eine Datenbankabfrage, habe zumindest im nodereference.module keine Funktion dazu gefunden.
Vielleicht ist aber auch in einem der anderen NR-Module eine solche Funktion enthalten, wäre jedoch nur sinnvoll, wenn Du jenes eh schon nutzen würdest.
an eine datenbankabfrage
am 29.01.2008 - 14:20 Uhr
an eine datenbankabfrage dachte ich auch schon.
aber wie finde ich denn über eine solche abfrage alle rekursiven verknüpfungen?
$result = db_query("SELECT ... FROM {...} WHERE ...LIKE '%%%s%%'", ...);
$result = db_query("SELECT
am 29.01.2008 - 14:46 Uhr
$result = db_query("SELECT nid FROM content_field_DEINNRFELD WHERE field_DEINNRFELD_nid = %d",$node->nid);
Dürfte funktionieren wenn das Feld eine eigene Tabelle hat. (Sonst
FROM content_type_DEINCTYPE
)toll, danke!
am 29.01.2008 - 15:45 Uhr
toll, danke!
logisch.
ich doofmann.
mein gehirn liegt immer nur ungenutzt rum...
und dann mit
$result = db_fetch_array($result);
weiterverarbeiten...
headkit schrieb ...nd dann
am 29.01.2008 - 15:52 Uhr
...nd dann mit
$result = db_fetch_array($result);
weiterverarbeiten...
Dadurch überschreibst Du dein Handle ($result) und würdest somit nur einen Datensatz bekommen. Wenn Du mehrere Datensätze abrufen willst, musst Du eine andere Variable nehmen und durch eine Schleife laufen.
<?php
for($arr = db_fetch_array($result)){
... = $arr['nid'];
}
?>
nice! und wenn ich in die
am 29.01.2008 - 17:20 Uhr
nice!
und wenn ich in die tabelle zurückschreiben möchte? kann ich dann immer noch die funktion db_query(), dann mit INSERT INTO ..., benutzen?
Könntest Du, jedoch sollte
am 29.01.2008 - 17:47 Uhr
Könntest Du, jedoch sollte man das den Drupal funktionen überlassen, soweit es welche dafür gibt. (node_save etc.)
danke!
am 29.01.2008 - 17:50 Uhr
danke!