Seite 1 von 1

Daten nachträglich ändern - die Zweite

Verfasst: Mi 15. Dez 2010, 11:48
von Utakka
Hallo zusammen,

die Hooks sind eine schöne Sache und waren mir schon so manches mal sehr nützlich. Nun stehe ich allerdings vor dem Problem, dass ich beim Speichern eines Dokuments (in meinem Fall ist es ein Bild) die Daten verändern möchte. Da Hooks meines Wissens nach erst nach dem Speichervorgang aufgerufen werden, kann man die Daten nicht einfach per setElement ändern, richtig?

Mein Ansatz war also so etwas in der Art:

Code: Alles auswählen

function weCustomHook_save($p) {

  include_once $_SERVER['DOCUMENT_ROOT'].'/webEdition/we/include/we_classes/we_imageDocument.inc.php';

  $img = new we_imageDocument();
  $img->initByID($p[0]->ID);
  $img->setElement("Title","Ich bin ein Text");
  $img->we_save();

}
Der Grundgedanke mag gar nicht so schlecht gewesen sein, allerdings funktioniert der Code nicht wirklich. Meine Vermutung ist, dass beim we_save() erneut der Hook aufgerufen und somit eine Endlosschleife erzeugt wird. Kann dies jemand bestätigen?

Gibt es für dieses Problem vielleicht einen anderen Lösungsansatz?

Besten Dank!

Re: Daten nachträglich ändern - die Zweite

Verfasst: Mi 15. Dez 2010, 12:05
von Creutzburg
Hallo,

ja, der Hook wird tatsächlich erneut aufgerufen und endet in einer Endlosschleife. Wir haben uns damit beholfen, dass wir beim ersten Durchlauf des Hooks eine Sessionvariable setzen - beim zweiten Durchlauf wird der Hook nicht ausgeführt, weil vorher geprüft wird, ob die Sessionvariable schon gesetzt ist.

Ich denke, Du brauchst aber noch ein we_publish() hintendran.

Gruß,
Alex

Re: Daten nachträglich ändern - die Zweite

Verfasst: Mi 15. Dez 2010, 12:42
von Utakka
Moin Alex,

das mit der Session ist eine gute Idee, das werde ich nachher gleich mal testen. Vielen Dank dafür!

we_publish() benötige ich übrigens nicht, da es sich um ein Bild handelt. Mehr als Speichern und Löschen gibt es da ja nicht.

Schönen Gruß!