[erledigt] Node Reference Url / NID (Parent-Node) an drupal_get_form übergeben?
am 27.09.2011 - 10:03 Uhr in
Hallo Freunde,
ich habe einen (fertigen/gespeicherten) Parent-Node. Für diesen Parent-Node will ich Child-Nodes anlegen.
Im Child-Node gibt es ein Node Reference url Feld.
Normalerweise kann man im "Node-Reference"-Feld angeben, dass der Link, zur Erstellung des referenzierten Child-Nodes, im Parent-Node angezeigt wird sodass der User, wenn er diesen Link anklickt, auf das Add-Form des Child-Nodes gelangt. Die NID des Parent-Nodes wird per URL übergeben
node/add/childnode/nid_parent_node
Ich möchte jetzt aber, das Add-Form (für den Child-Node) nicht per URL aufrufbar machen, sondern direkt im Footer des Parent-Nodes anzeigen lassen (wie man das z.B. von der aufgeklappten Kommentar-Form kennt)
Um die Add-Form des Child-Nodes aufzurufen, binde ich folgenden Code direkt im Node-Template des Parent-Nodes ein.
<?php
module_load_include('inc', 'node', 'node.pages');
if (node_access('create', 'childnode')) {
$node = array('uid' => $user->uid, 'type' => 'childnode', 'language' => ''); // gekürzt
print drupal_get_form('childnode_node_form', $node);
}
?>
Da hierbei ja nicht die NID des Parent-Nodes mit übergeben wird, weil der Aufruf des Add-Forms nicht über die URL mit der angehängten NID abläuft, dachte ich nun, dass man diese NID mit in das $node-Array mit reinschreiben muss.
<?php
$node = array('uid' => $user->uid, 'type' => 'childnode', 'language' => ''', 'field_reffi[0][nid]' => $node->nid);
?>
'field_reffi[0][nid] ist das Array so wie es später in der gespeicherten $node-Variablen verfügbar sein muss.
Bevor das $node-Array an drupal_get_form übergeben wird, sieht das mit krumo so aus.
Wenn ich jetzt das Add-Form des Child-Nodes speichere, bleibt aber field_reffi[0][nid] weiterhin leer - sprich - der Child-Node hat die NID des Parent-Nodes nicht mitbekommen/gespeichert und "weiß" somit nicht worauf es referenziert.
Hat jemand eine Idee was ich falsch mache bzw. wie man die NID des Parent-Nodes korrekt in das Node-Array schreibt, sodass es von drupal_get_form korrekt verarbeitet werden kann?
Vielen Dank und schöne Grüße
Matthias
- Anmelden oder Registrieren um Kommentare zu schreiben
Beim nochmaligen Durchlesen
am 27.09.2011 - 10:35 Uhr
Beim nochmaligen Durchlesen ist mir der Fehler selbst aufgefallen.
das $node-Array muss man so schreiben
<?php
$node = array('uid' => $user->uid, 'type' => 'page', 'language' => '', 'field_reffi' => array('0' => array('nid' => $node->nid)));
?>
Jetzt klappt es :-)
Drupal rockt!!!