3.2.3 Aktionen

Liste der Aktionen

Mit einer Aktion können die in einem Modul eingegebenen Variablenwerte bearbeitet werden. Es sind beliebige Operationen möglich. Wollen Sie zum Beispiel beim Editieren eines Blocks die Eingaben von Daten überprüfen, dann können Sie dies mit Hilfe einer Aktion tun. Die Eingaben können, je nach Definition und Programmierung der Aktion, überprüft, korrigiert und verändert werden.

Die Definition und Funktionen einer Aktion erfolgt in einer einfachen Eingabemaske. Alle Aktionen werden im Bereich “Aktionen” aufgelistet. Bei der Erstellung oder Bearbeitung eines Moduls wird diese Liste zur Auswahl angezeigt und kann dem Modul hinzugefügt werden.

Die Liste sehen Sie, wenn Sie im Bereich “Module” auf den Link “Aktionen” klicken.

Aktionen erstellen oder bearbeiten

Aktion anlegen

Zum Erstellen einer neuen Aktion klicken Sie auf das kleine Pluszeichen oberhalb der Liste. Zum Bearbeiten einer vorhandenen Aktion klicken Sie auf deren Namen. Es erscheint eine Eingabemaske, die mehrere Möglichkeiten zur Bearbeitung bietet.

Es gibt drei Arten von Aktionen

Preview-Action:
Die Aktion wird vor dem Anzeigen des Moduls ausgeführt.

Presave-Action:
Die Aktion wird vor dem Speichern des Moduls ausgeführt.

Postsave-Action:
Die Aktion wird nach dem Speichern des Moduls ausgeführt.

Jeder Aktion können bis zu drei Events zugewiesen werden

ADD:
Ausführen beim Hinzufügen des Moduls

EDIT:
Ausführen beim Bearbeiten des Moduls

DELETE:
Ausführen beim Löschen des Moduls

Bei einer Preview-Action hat man nur die Möglichkeit, das Event “EDIT” auszuwählen. Bei Pre- oder Postsave Action hat man alle drei Wahlmöglichkeiten.

Aktionen einem Modul zuweisen

Aktion hinzufügen

Bei der Erstellung oder Bearbeitung eines Moduls wird in der Bearbeitungsmaske eine Liste aller Aktionen angezeigt, die dem Modul nun zugewiesen werden können.

Beispiel: Mehr als 10 REX_VALUEs

Dies ist ein Beispiel aus dem Downloadbereich, das für die Version 4.0 erstellt wurde. (Herzlichen Dank an Martin R. Findert für die ausführliche und hilfreiche Beschreibung.)

<?php
/* Neue Version der "rexname"-Action, laeuft mit REX 4.0.
Diese muss nur als Presave-Action fuer ADD und EDIT
eingetragen werden. Anschliessend wird sie einem Modul
zugeordnet. In diesem muss dann bei Eingabe UND Anzeige
als erstes Folgendes stehen:
<?php $rexname = split('~~', "");
$GLOBALS['rexname'] = $rexname; ?>

Damit stehen im Modul die Variablen $rexname[0] bis
$rexname[98] zur Verfuegung. kann dann in
diesem Modul nicht mehr fuer andere Zwecke verwendet
werden (natuerlich laesst sich auch jeder andere
REX_VALUE verwenden).
Achtung: Werte, die in $rexname[n] gespeichert werden,
duerfen nicht den Substring '~~' enthalten!
*/


// Sicherheitsabfrage: sollte noch nicht beschrieben sein
if ($REX_ACTION['VALUE'][1] == '') {
$newname = "";
// Anlegen eines Strings mit 99 Feldern, durch ~~ getrennt
for ( $c = 0; $c < 99; $c++ ) {
// Pruefen von $rexname[0] bis $rexname[98] - sind sie gesetzt,
// dann werden sie im String abgelegt. Anderenfalls wird nur
// das naechste '~~' angehaengt.
if (isset($rexname[$c])) {
$newname .= $rexname[$c] . '~~';
}
else {
$newname .= '~~';
}
}
// Der Gesamtstring wird in abgespeichert
$REX_ACTION['VALUE'][1] = $newname;
}
?>