Suche:
Virthos-Onlinedokumentation > >   

Ereignisgesteuerte Methoden

Mit Hilfe der vtDo-Anweisung lassen sich Vorgänge automatisch ausführen, wenn eine bestimmte Seite aufgerufen wird. Das ist in vielen Fällen hilfreich und ausreichend, aber manchmal würde es die Sache erleichtern, wenn man die Ausführung nicht an das Aufrufen einer Seite, sondern an andere Ereignisse koppeln könnte. Virthos Master stellt dafür einen Mechanismus bereit, den wir als "ereignisgesteuerte Methoden" bezeichnen. Was es damit auf sich hat, wird am besten an einem Beispiel deutlich.

Angenommen, Sie haben ein Gästebuch eingerichtet, das aus den Templates gbook.html und gbookentry.html besteht. Nun möchten Sie, dass bei jedem neuen Gästebucheintrag eine Benachrichtigung per E-Mail versendet wird. Um dies zu erreichen, müssten Sie eine Datei erstellen, die folgende Anweisung enthält:


Damit diese Anweisung automatisch ausgeführt wird, wenn ein neuer Eintrag hinzugefügt wurde, müssen Sie die Datei einfach nur richtig benennen. Der korrekte Name wäre in diesem Fall: gbookentry._oncreate.html. Achten Sie auf den Unterstrich hinter dem Punkt!

Wann immer eine neue Seite angelegt wird, prüft Virthos Master, ob es für den betreffenden Seitentyp eine "oncreate"-Methode gibt. Wenn dies der Fall ist, werden die Anweisungen in dieser Datei sofort nach dem Erstellen der Seite ausgeführt. In einer solchen Methode können Sie alle Platzhalter und Anweisungen verwenden, die Virthos zur Verfügung stellt. Die obige Methode ließe sich zum Beispiel folgendermaßen erweitern:


Dies ist ein sehr einfacher Spam-Filter, der die grundsätzlichen Möglichkeiten verdeutlicht: Wenn in dem Gästebucheintrag das Wort "viagra" vorkommt, wird die gerade erstellte Seite sofort in den Papierkorb verschoben. Nur wenn das Wort "viagra" nicht vorkommt, erfolgt eine E-Mail-Benachrichtigung.

Die Anweisungen in einer oncreate-Methode werden im Kontext der gerade erstellten Seite ausgeführt, darum können Sie in dem obigen Beispiel direkt den Platzhalter {Eintrag} verwenden (wobei wir hier stillschweigend davon ausgegangen sind, dass in dem Formular zum Erstellen des Gästebucheintrags das betreffende Formularfeld ebenfalls "Eintrag" heißt).

Virthos Master kennt neben dem Erstellen von Seiten noch andere Ereignisse, für die man entsprechende Methoden bereitstellen kann. Hier sind alle Ereignisse im Überblick:

Methode wird ausgeführt,...
oncreate wenn eine Seite des betreffenden Typs erstellt wurde
onupdate wenn eine Seite des betreffenden Typs verändert wurde
onchange wenn eine Seite des betreffenden Typs erstellt oder verändert wurde
onadd wenn zu einer Seite des betreffenden Typs eine neue Subseite hinzugefügt wurde (entweder durch Erstellen einer neuen Seite oder durch Verschieben einer bestehenden Seite mittels Ausschneiden/Einfügen)

Die Ereignisse überschneiden sich teilweise, so dass ein einzelnes Ereignis mehrere Methoden auslösen kann. Beim Erstellen einer neuen Seite wird beispielsweise für die neue Seite die "oncreate"- und die "onchange"-Methode und für die Containerseite die "onadd"-Methode ausgeführt. Die Reihenfolge der Ausführung entspricht der Folge, in der die Methoden in der Tabelle aufgeführt sind.

Wichtig zu beachten: Grundsätzlich werden ereignisgesteuerte Methoden auch dann ausgeführt, wenn das Ereignis durch eine Inline-Aktion ausgelöst wurde, wenn Sie also beispielsweise mit vtDo eine neue Seite erstellt haben. Um Endlosschleifen zu verhindern, gilt dies allerdings nicht für Inline-Aktionen, die sich selbst innerhalb einer ereignisgesteuerten Methode befinden.

< Inline-Aktionen mit vtDo 11.09.2008, 07:54 Uhr Eigene Datenbankabfragen >