Tabelle oder div << ^ CMS Modul: MPForm (Modul-Homepage) ^ >> Formularschleifen
MPForm-Dokumentation: Private Funktionen
Schwierigkeitsgrad C
Ein Modul für Website Baker kann bei vielen Anwendern alle Anwendungsfälle "erschlagen". Manche Kunden haben jedoch Wünsche oder Anforderungen, die besondere Funktionalitäten voraussetzen. Selbst auf einer Website können mehrere Formulare vorhanden sein, die aber unterschiedlich funktionieren sollen. Um flexibel auf solche Anforderungen reagieren zu können, sind Schnittstellen zu mehreren privaten Funktionen in das Modul eingebaut. Diese Funktionen gehören in die Datei private.php. Der Vorteil der Bündelung des eigenen Programmcodes in einer separaten Datei dürfte einleuchtend sein: vor dem Einspielen von Updates müssen Sie ansonsten Quellcode von alten und neuen Dateien vergleichen und jede Änderung an die richtige Stelle in den neuen Dateien kopieren. Mit der Auslagerung aller Anpassungen in die Datei private.php fällt diese Arbeit weg. Momentan wird die Datei private.php noch bei jedem Update überschrieben, Sie müssen also davon unbedingt eine Sicherheitskopie anlegen, bevor Sie ein Update einspielen!
Folgende privaten Funktionen sind in bereits vorhanden:
- private_function_before_new_form
- Wird aufgerufen, bevor ein Formular zusammengebaut wird. Hier kann man z.B. Feldinhalte je nach zuvor besuchter Seite vorbelegen.
- private_function_before_email
- Wird aufgerufen, nachdem ein Formular erfolgreich ausgefüllt wurde, aber bevor es verschickt und gespeichert wird. Hier könnte man also z.B. Benachrichtigungstexte anpassen.
- private_function_on_success
- Wird aufgerufen, nachdem ein Formular erfolgreich ausgefüllt und gespeichert wurde. Hier kann man z.B. dynamisch die Folgeseite umschalten.
Damit die Funktion nicht bei jedem Formular das gleiche macht, sollte man zuvor die Variable $section_id abfragen und nur bei Übereinstimmung die benötigten Aktionen durchführen. Diese Variable ist gleichzeitig das einzige Argument, das den Funktionen beim Aufruf übergeben werden muss.
Der Rückgabewert sollte logisch sein, allerdings verwenden ihn momentan nur die beiden letzten Funktionen. FALSE dient hier zum abbrechen des regulären Programmflusses.
Auf der nächsten Seite gibt es ein Beispiel aus der Praxis: die Programmierung einer Formularschleife.
Deutsch
English