Dokumentation REDAXO

R4 /

Für weitere Beispiel siehe auch: R3.Aktionen

Hier eine einfach Prüfung, die Aktionen kurz erklären soll.

Das Beispiel: Ihr habt ein Eingabefeld in einem Modul, was als Pflichteingabe geprüft werden soll.

Eingabemodul: <input type="text" size="20" name="VALUE[1]" value="REX_VALUE[1]" />

Die entsprechende Aktion: Ein neuen Eintrag anlegen und bei Presave-Action folgendes einfügen:

 <?php
 if (!$REX_ACTION[VALUE][1]) { 
   $REX_ACTION['SAVE'] = False;
   $REX_ACTION['MSG'] = "Bitte geben Sie Werte ein."; 
 } 
 ?>

Zusätzlich ADD/EDIT wählen und die angelegt Aktion jetzt noch dem Modul hinzufügen. Fertig.

Wenn bei der Eingabe von Daten in diesen Modul das VALUE[1] leer bleibt, wird das Modul nicht gespeichert und es erscheint die Warnmeldung "Bitte geben Sie Werte ein.". So kann verhindert werden, dass durch eine fehlende Eingabe schwerwiegende Fehler im Frontend auftreten.

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

$REX_ACTION['Slice_ID'] enthält nur bei den Actions "EDIT" und "DELETE" die aktuelle Slice-ID.
Bei einer Postsave-Action "ADD" wird aber nicht die aktuell erzeugte Slice-ID zurückgegeben.
Diese kann über folgenden Code abgefragt werden und steht dann in der Variablen $sliceId zur weiteren Verwendung zur Verfügung:

<?php
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'];
}
?>
Page last modified on 13.08.2011 23:33 Uhr