Create Object without Node?

eZ publish
04.04.2016

Stapelverarbeitung, Datenimport oder aus Spaß an der Freud, gelegentlich möchte der geneigte Entwickler Objekte per Script anlegen.

eZ publish hält dafür auch ein paar - zumindest auf den ersten Blick - geeignete Klassen und Methoden parat.

Auf den zweiten Blick, oder vielmehr im Praxistest, ergeben sich dann ein paar Ungereimtheiten. Etwa wenn im erzeugten Objekt keine NodeID zu finden ist.

Frohen Mutes lege ich also ein Objekt an:

$contentObject = eZContentFunctions::createAndPublishObject( $params );

Und freue mich, mit der daraus resultierenden NodeID weiter arbeiten zu können. Die Doku sagt, die NodeID ist hier zu finden: $contentObject->MainNodeID

Pustekuchen, nichts steht dort. Niente, nada. Einfach leer das Attribut.

Ein Blick ins Backend zeigt: Das Objekt wurde erzeugt und brav mit einer NodeID ausgestattet.

Der folgende Foreneintrag, den Google hervor bringt, macht mir Angst:

Die Frage:
The main node id is not set ! Is it normal ?
Die Antwort:
Depends, does it have any assigned nodes at all?
If not then it is ok.

Es kann also auch Objekte ohne Node geben. Wo schwirren die dann rum?

Try and Error: Was passiert, wenn ich das gerade erzeugte Objekt erneut fetche?

$contentObject =& eZContentObject::fetch($contentObject->ID);

Hossa, da ist sie, die NodeID... also wenn man Glück hat:

echo "MAIN_NODE_ID::".$contentObject->MainNodeID."<br>";

Wenn man kein Glück hat, dann vielleicht so:

$node = eZContentObjectTreeNode::fetchByContentObjectID($contentObject->ID);

... und man hat einen Node mit allen Informationen:

echo "MAIN_NODE_ID::".$node[0]->MainNodeID."<br>";

eZ macht es einem nicht immer leicht.

comments powered by Disqus

Gesundheit

Tamiflu: Wirkstoff oder Plazebo

Medizinschrank

ORF deckt auf: "Der Nutzen der Grippemittel Tamiflu und Relenza ist nach einer großangelegten Studie fraglich."

Ein Freund entgegnet: "Und da regen sich manche über Homöopathie auf..."

Jetzt lasst uns das mal unaufgeregt analysieren.

A ? B C D E F G H I J K L M N O P Q R S T U V W Z