Node im code Erzeugen und eine Node Reference geben
am 17.07.2012 - 17:29 Uhr in
Hi
Ich habe ein Ausgabenbasiertes Projekt. Eine Ausgabe besteht aus 58 seiten und 9 verschiedenen Inhaltselementen.
Da ich es den Redakteuren später erlichtern möchte, schreibe ich gerade den Code der einen Ausgabe in einem rutsch komplett anlegt. Also alle Seiten + verknüpfung.
Ich habe folgendes problem.
hier ein auszug aus der schleife die alles erstellt
<?php
$node = new stdClass();
$node->title = "highlight_".$k;
$node->body = "der body ist leer";
$node->type = 'highlight'; // Your specified content type
$node->created = time();
$node->changed = $node->created;
$node->status = 1;
$node->promote = 1;
$node->sticky = 0;
$node->format = 1; // Filtered HTML
$node->uid = 1; // UID of content owner
$node->language = 'de';
$node->nodehierarchy_menu_links[0]["pnid"] = $sitearray[0][0][0]->nid;
node_save($node);
echo "site:".$sitearray[0][0][0]->nid;
echo "node:".$node->nodehierarchy_menu_links[0]["pnid"];
$sitearray[$i][$j][$k] =$node;
?>Wie ihr seht wird ein node vom Typ Highlight erstellt. Die beiden echos geben die richtigen Werte wieder, also bin ich davon ausgegangen, dass die verlinkung funktioniert hat.
Wenn ich aber nun die erstellte Highlight seite aufrufe, ist
<?php
echo "node:".$node->nodehierarchy_menu_links[0]["pnid"];
?>leer..., das wundert mich sehr weil es beim erstellen noch befüllt ist nach dem speichern.
Hat jemand eine Idee?
Mfg Thomas
- Anmelden oder Registrieren um Kommentare zu schreiben

Hast Du mal überprüft, ob
am 17.07.2012 - 19:17 Uhr
Hast Du mal überprüft, ob Deine Node-Struktur korrekt ist? Zumindest
$node->language = 'de';sieht mir sehr nach Drupal 6 aus. Das ist bei Drupal 7 etwas anders. Dann ist zwar Dein echo noch korrekt, aber der node_save hat nicht die von Dir erwartete Wirkung, da die Struktur nicht stimmt.Beste Grüße
Werner
hey müsste ich noch mal
am 17.07.2012 - 20:57 Uhr
hey
müsste ich noch mal schauen bei dem $node->language, aber ansich brauch ich das auch gar nicht. Vorher lege ich auf die gleich weise auch nodes für meinen "sender" inhaltstyp an, und dabei befülle ich auch ein paar Felder direkt. Diese werden bei dem inhalt auch später korrekt angezeigt, also scheint das speichern zumindest dort zu klappen.
mfg Thomas
ich habe mir die Sache noch
am 18.07.2012 - 08:56 Uhr
ich habe mir die Sache noch mal angeschaut. Die Felder die ich setze werden alle korrekt befüllt.
Siehe hier
stdClass Object(
[vid] => 959
[uid] => 1
[title] => highlight_0
[log] =>
[status] => 1
[comment] => 0
[promote] => 1
[sticky] => 0
[nid] => 959
[type] => highlight
[language] => de
[created] => 1342597125
[changed] => 1342597125
[tnid] => 0
[translate] => 0
[revision_timestamp] => 1342597125
[revision_uid] => 1
<?php
$node = new stdClass();
// Your script will probably pull this information from a database.
$node->title = "highlight_".$k;
$node->body = "der body ist leer";
$node->type = 'highlight'; // Your specified content type
$node->created = time();
$node->changed = $node->created;
$node->status = 1;
$node->promote = 1;
$node->sticky = 0;
// $node->format = 1; // Filtered HTML
$node->uid = 1; // UID of content owner
$node->language = 'de';
$node->nodehierarchy_menu_links[0]["pnid"] = $sitearray[0][0][0]->nid;
node_save($node);
echo "site:".$sitearray[0][0][0]->nid;
echo "node:".$node->nodehierarchy_menu_links[0]["pnid"];
$sitearray[$i][$j][$k] =$node;
?>
Das ergebnis des Echos
site:956
node:956
Auf der highligh seite aber selber steh in "pnid" nichts drin
[
nodehierarchy_menu_links] => Array(
[0] => Array
(
[pnid] =>
[menu_name] => navigation
[mlid] => 1537
[plid] => 0
[link_path] => node/959
[router_path] => node/%
[link_title] => highlight_0
[options] => Array