Postsave-Action "ADD" und $REX_ACTION['SLICE_ID']

Wie verwendet man Module oder Aktion und passt diese an.

Postsave-Action "ADD" und $REX_ACTION['SLICE_ID']

Beitragvon sidney » 7. Jun 2011, 15:22

Hallo Zusammen,

Kann es sein, dass beim Speichern eines Modules auch in der Postsave-Action die Variable $REX_ACTION['SLICE_ID'] immer noch 0 ist oder liegt der Fehler bei mir? Falls ja, wie kome ich zu einer Slice id in einer Aktion?

Grüsse,
Sidney
sidney
 
Beiträge: 13
Registriert: 26. Jan 2011, 14:13

Re: Postsave-Action "ADD" und $REX_ACTION['SLICE_ID']

Beitragvon sidney » 7. Jun 2011, 16:18

Habe gerade gesehen das beim speichern eines neuen Slices (add) noch ein hidden Feld per POST mitgegeben wird ("slice_id") in welchem die id des letzten slices steht. Sprich hidden field slice_id +1 = meine gewünschte ID? Ist das so stabil oder gibts da ne bessere Möglichkeit?
sidney
 
Beiträge: 13
Registriert: 26. Jan 2011, 14:13

Re: Postsave-Action "ADD" und $REX_ACTION['SLICE_ID']

Beitragvon Koala » 7. Jun 2011, 18:46

sidney hat geschrieben:auch in der Postsave-Action die Variable $REX_ACTION['SLICE_ID'] immer noch 0 ist oder liegt der Fehler bei mir?

Bei ADD enthält REX_ACTION nicht die neue Slice-ID; bei EDIT/DELETE hingegen schon.
Erwarten würde man hier tatsächlich eigentlich die neue Slice-ID. Es fehlt in dem Fall die Rückgabe der ID direkt im Core.

sidney hat geschrieben:Habe gerade gesehen das beim speichern eines neuen Slices (add) noch ein hidden Feld per POST mitgegeben wird ("slice_id") in welchem die id des letzten slices steht. Sprich hidden field slice_id +1 = meine gewünschte ID? Ist das so stabil oder gibts da ne bessere Möglichkeit?

Das ist zumindest so lange stabil, wie du der einzige bist, der einen neuen Slice anlegt. Sind allerdings gerade zwei Personen gleichzeitig damit beschäftigt einen neuen Slice zu speichern, dann passt es nicht mehr mit absoluter Sicherheit. Wer zu erst auf "Block hinzufügen" klickt, bekommt die nächsthöhere ID zugeteilt.

Als einzige Lösung sehe ich momentan sich selbst eine Abfrage in der POSTSAVE-Action zu stricken, die die letzte Slice-ID des Artikels ausliest.
.
<?php print $Footer; ?>

Sven

Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!


REX_DOKU :: REX_WIKI :: REX_FAQ :: REX_WIKIPEDIA
Benutzeravatar
Koala
 
Beiträge: 1529
Registriert: 3. Okt 2005, 12:20
Wohnort: Cottbus

Re: Postsave-Action "ADD" und $REX_ACTION['SLICE_ID']

Beitragvon sidney » 8. Jun 2011, 08:08

Vielen Dank für deine Antwort, an deinen Lösungsansatz hab ich gar nicht gedacht ;)

Falls das mal noch jemand braucht, hier die Action:
Code: Alles auswählen
if($REX_ACTION['EVENT'] == "ADD"){
        $articleId = $REX_ACTION['ARTICLE_ID'];
   $mi = new rex_sql;
   $mi->setQuery("SELECT MAX(id) FROM rex_article_slice WHERE article_id = '$articleId'");
   if($mi->getRows() == 1){
      $sliceId = $mi->getValue("MAX(id)");
   }
   unset($mi);
}else{
   $sliceId = $REX_ACTION['SLICE_ID'];
}

sidney
 
Beiträge: 13
Registriert: 26. Jan 2011, 14:13

Re: Postsave-Action "ADD" und $REX_ACTION['SLICE_ID']

Beitragvon Koala » 8. Jun 2011, 19:09

Super!
Hab das gleich mal verhaftet: Postsave-Action "ADD" und $REX_ACTION['SLICE_ID']
.
<?php print $Footer; ?>

Sven

Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!


REX_DOKU :: REX_WIKI :: REX_FAQ :: REX_WIKIPEDIA
Benutzeravatar
Koala
 
Beiträge: 1529
Registriert: 3. Okt 2005, 12:20
Wohnort: Cottbus


Zurück zu Module/Aktionen [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast