Einbinden eines Formulares

Modul / Vorlage

Um ein PIFA Formular in einen Artikel einbinden zu können wurde das Modul "content_form" erstellt. Dieses wird z.B. in der Vorlage "Formular" verwendet, kann aber auch nachträglich in jede andere Vorlage eingebunden werden.

Anlage eines Artikels

Zur Darstellung des Formulars ist ein Aritkel mit der oben genannten Vorlage anzulegen. Innerhalb des Artikels (Editoransicht) kann das Formular jetzt konfiguriert werden. Das Modul "content_form" stellt dazu einen Formulareditor zur Verfügung welcher durch einen Klick auf das folgende Icon geöffnet werden kann.

Öffnen des Formulareditors:

Formulareditor

Der Formulareditor bietet eine Reihe von Einstellungen die das Aussehen und Verhalten des Formulares bestimmen.

Formular

In dieser Auswahlbox stehen Ihnen die angelegten Formulare innerhalb dieses Mandanten zur Verfügung.

Klassen & Vorlagen

Modul

Um das ausgewählte Formular darzustellen und die damit erfaßten Daten zu verarbeiten bedarf es eines Moduls. Dieses bestimmt wie das Formular bei unterschiedlichen HTTP-Anfragemethoden (z.B. GET oder POST) reagiert und wie ungültige Daten gehandhabt werden. Wird kein Modul ausgewählt, so wird das Formular weder dargestellt noch verarbeitet. Dies ist eine einache Möglichkeit ein Formular (auch temporär) zu deaktivieren ohne die bereits erfaßten Daten zu beeinflussen.

In der Regel bietet sich das DefaultFormModule an welches in der Lage ist die HTTP-Anfragemethoden GET & POST zu verarbeiten.  Sollte ein besonderes Verhalten gewünscht werden kann dies in Form eines weiteren Moduls entwickelt und hier zur Auswahl angeboten werden. Dazu muß das Modul von der Klasse PifaAbstractFormModule abgeleitet werden und im Verzeichnis contentido/plugins/form_assistant/extensions hinterlegt werden.

DefaultFormModule: Bei einer GET-Anfrage wird das Formular mithilfe der unter "Vorlage - GET" ausgewählten Vorlage dargestellt. Standardmäßig werden die Inhalte des Formulares an denselben Artikel gesendet in dem das Formular dargestellt wird, so daß dieses auch für die Verarbeitung der Daten zuständig ist. Nach dem Absenden des Formulars (POST-Anfrage) wird der eingestellte Prozessor auf die übergebenen Daten angewendet. Wird bei der Verarbeitung der Daten festgestellt, daß diese invalide sind, so wird das Formular analog zu einer GET-Anfrage wieder dargestellt. Diesmal werden die bereits erfaßten Daten allerdings wieder im Formular dargestellt und eventuell vorhandene Fehlermeldungen angezeigt. Konnte das Formular hingegen erfolgreich verarbeitet werden so wird die Ausgabe mithilfe der unter "Vorlage - POST" ausgewählten Vorlage generiert.

Prozessor

Der Prozessor ist für die Verarbeitung der erfaßten Daten bei einer POST-Anfrage verantwortlich. Die bisherigen Formulare verhalten sich in diesem Punkt unterschiedlich weshalb vor allem hier die Anforderungen in Form spezieller Prozessor-Implementationen reagiert werden muß. Möchte man die Daten individuell verarbeiten, muß eine Prozessor-Klasse, die von PifaAbstractFormProcessor abgeleitet wird, implementieren und in das Verzeichnis contentido/plugins/form_assistant/extensions hinterlegen.

DefaultFormProcessor: Mit dem DefaultFormProcessor gibt es auch hier eine Standardimplementation die dafür sorgt, daß die gesendeten Daten validiert und in die definierte Datentabelle eingetragen werden.

MailedFormProcessor: Zusätzlich zur Funktionalität des DefaultFormProcessor ermöglicht dieser Prozessor den Versand zweier EMails so wie sie weiter unten unter "Benutzer-Mail" und "System-Mail" konfiguriert werden können. Der Versand erfolgt hierbei erst nach der Validierung und Speicherung der Daten in der Datenbank.

Vorlage - GET

Diese Vorlage dient der Darstellung des Formulares bei einer GET-Anfrage und wird von dem unter "Modul" eingestellten Modul verwendet. Redakteure können weitere Templates unter Style | HTML erstellen oder bestehende Templates verändern. Damit ein Template im PIFA-Editor zur Auswahl angezeigt wird muß dessen Name mit "cms_pifaform_" beginnen und mit "_get.tpl" enden.

Vorlage - POST

Diese Vorlage dient der Darstellung des Formulares bei einer POST-Anfrage und wird von dem unter "Modul" eingestellten Modul verwendet. Redakteure können weitere Templates unter Style | HTML erstellen oder bestehende Templates verändern. Damit ein Template im PIFA-Editor zur Auswahl angezeigt wird muß dessen Name mit "cms_pifaform_" beginnen und mit "_post.tpl" enden.

Benutzer-Mail

  • Vorlage: Mailtemplate für die Email an den Kunden (Die Templates liegen im Dateisystem von CONTENIDO). Damit ein Template im PIFA-Editor zur Auswahl angezeigt wird muß dessen Name mit "cms_pifaform_" beginnen und mit "_mail_client.tpl" enden.
  • Absender-Adresse: Absender Email-Adresse der E-Mail an den Kunden
  • Absender-Name: Absender-Name der Email an den Kunden
  • Betreff: Betreff der Email an den Kunden. Hier können ebenfalls die Variablen, z.B. {$values.subject} verwendet werden, um Inhalte aus dem Formular als Betreff zu verwenden.

System-Mail

  • Vorlagen: Mailtemplate für die interne Mail nach Absenden des Formulares (Die Templates liegen im Dateisystem von CONTENIDO). Damit ein Template im PIFA-Editor zur Auswahl angezeigt wird muß dessen Name mit "cms_pifaform_" beginnen und mit "_mail_system.tpl" enden.
  • Absender-Adresse: Absender Email-Adresse der Email intern
  • Absender-Name: Absender Name der Email intern
  • Empfänger-Adresse: Empfängeremailadresse
  • Betreff: Betreff der internen Email. Hier können ebenfalls die Variablen, z.B. {$values.subject} verwendet werden, um Inhalte aus dem Formular als Betreff zu verwenden.