Deutsch Deutsch English English

Tabelle oder div <<    ^ MPForm Hilfeseiten ^    >> Formularschleifen

MPForm-Dokumentation: Private Funktionen

Schwierigkeitsgrad C 

Ein Modul für LEPTON 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. Die Datei private.php wird beim Upgrade nicht mit aktualisiert. Anpassungen der vorgeschlagenen Beispiele in neueren Versionen müssen Sie gegebenenfalls selbst aus private.default.php übernehmen

Folgende privaten Funktionen sind vorhanden:

function private_function_before_new_form($section_id)
Wird aufgerufen, bevor ein Formular zusammengebaut wird. Hier kann man z.B. Feldinhalte je nach zuvor besuchter Seite vorbelegen.
function private_function_before_email($section_id, &$html_data_user, &$html_data_site)
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. Dabei gibt es den Benachrichtigungstext an den Sitebetreiber und denjenigen an den Benutzer.
private_function_after_email($section_id, &$html_data_site, &$mpform_fields)
Wird aufgerufen, nachdem ein Formular erfolgreich ausgefüllt und verschickt wurde, aber bevor es in der Datenbank gespeichert wird. Eventuell soll der Inhalt in der Datenbank in einem anderen Format abgelegt werden, so dass es leichter zu verarbeiten ist, aber in der Benachrichtigungsmail sollte der Originalinhalt verschickt werden. Dann ist hier die richtige Stelle, um diese Anpassung vorzunehmen$html_data_site wird in der Submissions-Tabelle gespeichert und $mpform_fields enthält die SQL-Statements für die Results-Tabelle. Auch hier gibt es zwei Varianten:
private_function_on_success($section_id)
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.

Der Rückgabewert sollte ein Boolscher Wert sein, allerdings verwendet ihn momentan private_function_before_new_form noch nicht. Bei allen anderen: FALSE dient zum Abbrechen des regulären Programmflusses, bei TRUE geht die Ausführung weiter.

Auf der nächsten Seite gibt es ein Beispiel aus der Praxis: die Programmierung einer Formularschleife.