Abschnitt: Formular-Editor

Aus SiteparkWiki
Version vom 19. Oktober 2015, 16:13 Uhr von Veltrup (Diskussion | Beiträge) (→‎Model)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Beschreibung

Der Formular-Editor ermöglicht die Erstellung von beliebig vielen einfach strukturierten Formularen. Die einzelnen Formular-Felder werden in beliebig vielen Fieldsets gruppiert. Innerhalb der Fiedsets können Felder mit verschiedenen Feld-Typen definiert werden.


Verschiedene Typen von Eingabefeldern

Anmerkung (kein Eingabefeld)
Bei dieser Auswahl wird kein Eingabefeld erzeugt. Es dient dazu Anmerkungen/Freitext innerhalb des Formulars zu Platzieren
einzeilige Texteingabe
Erzeugt ein einzeiliges Eingabefeld vom Typ 'text'.
einzeilige Texteingabe für eine E-Mail-Adresse mit Validierung
Erzeugt ein einzeiliges Eingabefeld vom Typ 'email'. Bei diesem Feld wird geprüft, ob die eingegebene E-Mail-Adressen syntaktisch korrekt ist. Werden die Formular-Daten als E-Mail verschickt, besteht noch die Möglichkeit zu bestimmen, dass an die eingegebene E-Mail-Adresse eine Bestätitgungs-E-Mail verschicken wird.
einzeilige Texteingabe für eine Telefonnummer
Erzeugt ein einzeiliges Eingabefeld vom Typ 'tel'.
einzeilige Texteingabe für eine Zahl mit Validierung
Erzeugt ein einzeiliges Eingabefeld vom Typ 'number'. Bei diesem Feld wird geprüft, ob die Eingabe eine ganze Zahl ist.
mehrzeilige Texteingabe
Erzeugt ein mehrzeilige Eingabefeld (Textarea).
Checkboxen
Erzeugt eine Checkbox oder eine Gruppe von Checkboxen. Hierbei müssen noch Werte für die einzelnen Checkboxen angegeben werden. Dazu wird in Infosite ein zusätzliches Feld eingeblendet. Wird mehr wie ein Wert definiert, werden die einzelnen Checkboxen zu einer Gruppe zusammengefasst.
Radio-Buttons
Erzeugt Radio-Buttons die in einer Gruppe zusammen gefasst werden. Hier müssen noch Werte für die einzelnen Radio-Buttons angegeben werden. Dazu wird in Infosite ein zusätzliches Feld eingeblendet.
Auswahlliste
Erzeugt eine Auswahl-Liste (Select-Box). Hier müssen noch Werte für die einzelnen Optionen angegeben werden. Dazu wird in Infosite ein zusätzliches Feld eingeblendet.
Dateiauswahl für eine Datei mit Validierung
Erzeugt ein Upload-Feld mit dem Dateien hochgeladen werden können. Diese Option steht nicht zur Verfügung, wenn aus den Formular-Daten ein Ticket in InfoTicket erzeugt wird. Grund dafür ist, das hier eine Viren-Prüfung stattfindet und so die Möglichkeit gegeben währe Viren in Infoticket einzuschleusen.
Eingabefelder für die Kontaktdaten des Bürgers
Hier werden mehrere Felder erzeugt um die Kontakt-Daten eines Bürgers aufzunehmen. Folgende Felder werden erzeugt: Anrede (Radio), Vorname (Text), Nachname (Text), Straße (Text), Hausnummer (Text), PLZ (Text), Ort (Text), Telefon (Text), E-Mail-Adresse (Email)


Feature

  • Jedes Feld kann als Pflichtfeld definiert werden.
  • Integrierte Spamschutz durch eine weitgehend barrierefreie, versteckte CAPTCHA-Funktion.
  • Versendung der Formular-Inhalte über HTTP oder HTTPS.


Verbarbeitung der eingegebnen Formular-Daten

Nachdem der Nutzer auf der Webseite das Formular ausgefüllt und abgesendet hat, werden die Formular-Daten verarbeitet. Zunächst werden die Daten auf Gültigkeit geprüft. Ist dies der Fall werden die Daten entweder per E-Mail versendet oder es wird mit den Daten ein Ticket in InfoTicket angelegt.

Versand als E-Mail

Beim Versand als E-Mail können in dem Abschnitt in Infosite noch Einstellungen für den Versand vorgenommen werden:

  • Angaben zum Adressaten der E-Mail (mehrere möglich)
  • Angaben zum Absender der E-Mail
  • Betrefftext der E-Mail
  • -Mail auch als HTML-Mail verschickt

Erzeugen eines Tickets in InfoTicket

Sollen aus den Formular-Daten Tickets in InfoTicket angelegt werden, können in dem Abschnitt in Infosite noch Einstellungen für den Versand vorgenommen werden:

  • Betrefftext des Tickets
  • Angaben zum Adressaten des Tickets: Empfängergruppe und ggf. Empfänger, wenn das Ticket NICHT an die gesamte Gruppe gesendet werden soll
  • InfoTicket-Typ
  • Priorität

Konfiguration

IES Optionen

Name Type Beschreibung
sectionTypes.formEditor.options.deliverer String Gibt an, ob die Formular-Date als E-Mail versendet, oder ein Ticket in InfoTicket erzeugt werden sollen: email,infoticket
sectionTypes.formEditor.options.https String Gibt an, ob das Formular über HTTPS verschickt werden soll: on, off. Wird diese Option nicht angegeben kann der Redakteur das über eine Checkbox entscheiden.
{
	"sectionTypes" : {
		...,
		"formEditor": {
			"order": 0.9,
			"id" : "formEditor",
			"name": "Formular-Editor",
			"template": {
				"module" : "sitekit-module",
				"uri" : "/templates/sectionTypes/formEditor.spml"
			},
			"aggregator" : { "module": "sitekit-module", "uri" : "/aggregator/sectionTypes/formEditor.spml", "type" : "formContainer" },
			"options": {
				"deliverer" : "email",
				"https" : "on"
			}
		},
		...
	}
}

PHP Optionen

Verbindung zu Infoticket

Diese Konfiguration ist notwendig, wenn aus den Formular-Daten Tickets in InfoTicket erzeugt werden sollen

Name Beschreibung
url Basis-Url (Protocol, Servername u. ggf. Port) um IES auf dem InfoTicket läuft
login Login des Nutzers über den die Tickets angelegt werden sollen.
password Password des Nutzers über den die Tickets angelegt werden sollen.
client Mandant des Nutzers über den die Tickets angelegt werden sollen.
array(
	'component.content.form.formContainer.deliverer' => array(
		'infoticket' => array(
			'connection' => array(
				'url' => 'http://localhost:8080',
				'login' => 'infoticket-api',
				'password' => 'secret',
				'client' => 'ies2work'
			)
		)
	)
)

Renderer-Konfiguration

Name Beschreibung
field.textarea.cols Konfiguration für die Textarea-Felder die der Formular-Editor erzeugt um die Anzahl der Zeichen pro Zeile zu setzten.
field.textarea.rows Konfiguration für die Textarea-Felder die der Formular-Editor erzeugt um die Anzahl der Zeilen zu setzten.
array(
	'renderer.html.arvedui.content.form' => array(
		'field.textarea' => array(
				'cols' => '50',
				'rows' => '5'
		)
	)
)

Mehrsprachigkeit

Unterstützt keine parallele Mehrsprachigkeit.

IES Mehrsprachigkeit

Eingabemaske ist nur in deutsch verfügbar

PHP Mehrsprachigkeit

array(
	'de.component.content.form.messages' => array(
		'success' => array(
			'headline' => 'Formular erfolgreich bearbeitet',
			'text' => 'Das Formular wurde erfolgreich bearbeitet. Vielen Dank.'
		),
		'failure' => array(
				'headline' => 'Es ist ein Fehler aufgetreten',
				'text' => 'Aufgrund eines internen Fehlers konnte das Formular nicht bearbeitet werden. ' .
					'Bitte versuchen Sie es zu einem späteren Zeitpunkt noch einmal.'
		),
	),
	'de.controller.form.action' => array(
		'submit' => array(
			'uploadInternal' => 'Beim Upload ist ein Fehler aufgetreten.',
			'uploadToLarge' => 'Die hochgeladene Datei ist zu groß.',
			'uploadIncomplete' => 'Die die Datei wurde nicht vollständig hochgeladen.'
		)
	),
	'de.controller.form.validatorRule' => array(
		'required' => 'Dieses Feld muss gefüllt werden.',
		'email' => 'Ungültige E-Mail Adresse.',
		'integer' => 'Ungültiger Zahlenwert. Die Zahl muss eine ganze Zahl sein.',
		'decimal' => 'Ungültiger Zahlenwert. Die Zahl muss eine ganze Zahl oder eine Dezimalzahl sein.'
	),
	'de.email.arvedui.content.form' => array(
		'confirmationPlainEmail' => array(
			'intro' => "Wir danken Ihnen für Ihre E-Mail.\n\nUm Missbrauch von E-Mailadressen zu verhindern, wurde Ihnen eine Bestätigung zugeschickt.",
		),
		'plainEmail' => array(
			'header' => 'Die folgende Nachricht wurde gesendet vom {client}-Webformular:',
			'footer' => 'Webformular: {url}'
		)
	)
	'de.html.arvedui.content.form' => array(
		'form' => array(
			"errorItemsMessage" => "Das Formular konnte nicht gesendet werden. Es sind folgende Korrekturen notwendig:"
		)
	)
)

Datenstruktur

IES Datenstruktur

Basis

Name Type Beschreibung
sp_headline String Überschrift
sp_classname String Zusätzlicher Klassenname für das Formular
sp_fieldset_iterate ListInformation Liste der Fieldsets
Schaltflächen und Hinweise
sp_submit String "absenden"-Button
sp_notice String weitere Hinweise
sp_https String Formulardaten verschlüsselt senden: true,false
sp_consent String Pflichtfeld für die Einverständniserklärung zum Speichern der Daten einbinden: true,false

Formulardatenversand per Email

Name Type Beschreibung
sp_deliverer String Hat immer den Wert 'email'
sp_deliverer_email.sp_recipient_iterate[index].sp_name String Angaben zum Adressaten der E-Mail: Name
sp_deliverer_email.sp_recipient_iterate[index].sp_email String Angaben zum Adressaten der E-Mail: E-Mailadresse
sp_deliverer_email.sp_sender_name String Angaben zum Absender der E-Mail: Name
sp_deliverer_email.sp_sender_email String Angaben zum Absender der E-Mail: E-Mailadresse
sp_deliverer_email.sp_subject String Betrefftext der E-Mail
sp_deliverer_email.sp_email_html String Inhalt der Mail im HTML-Format senden: true,false

Formulardatenversand per InfoTicket

Name Type Beschreibung
sp_deliverer String Hat immer den Wert 'infoticket'
sp_deliverer_infoticket.sp_subject String Betrefftext des Tickets
sp_deliverer_infoticket.sp_infoticket_group.link ID Empfängergruppe
sp_deliverer_infoticket.sp_infoticket_participant.link ID Empfängers, wenn das Ticket NICHT an die gesamte Gruppe gesendet werden soll.
sp_deliverer_infoticket.sp_infoticket_type String Anchor des InfoTicket-Typ für die Tickets.
sp_deliverer_infoticket.sp_infoticket_priority String Priorität für die Tickets.

Fieldset

Name Type Beschreibung
sp_fieldset_iterate[index].sp_legend String Legende
sp_fieldset_iterate[index].sp_field_iterate ListInformation Liste der Felder

Feld

Name Type Beschreibung
sp_fieldset_iterate[index].sp_field_iterate[index].sp_fieldType String Type des Feldes (text, number, tel, email, ...)
sp_fieldset_iterate[index].sp_field_iterate[index].sp_options String Optionen (mit Semikolon getretten) für Checkbox, Radio-Buttons und Select-Box
sp_fieldset_iterate[index].sp_field_iterate[index].sp_text String Wird nur bei Anmerkungen für den Text der Anmerkung verwendet.
sp_fieldset_iterate[index].sp_field_iterate[index].sp_label String Feldbeschriftung
sp_fieldset_iterate[index].sp_field_iterate[index].sp_required String Gibt an ob es sich um ein Pflichtfeld handelt: true,false
sp_fieldset_iterate[index].sp_field_iterate[index].sp_inline String Gilt für Checkbox und Radio-Buttons für die Darstellung in einer Zeile: true,false
sp_fieldset_iterate[index].sp_field_iterate[index].sp_confirmation String Gilt für E-Mail, um an die E-Mail-Adresse ein Bestätigungs-E-Mail zu verschicken: true,false
sp_fieldset_iterate[index].sp_field_iterate[index].sp_break String Eine Leerzeile nach Feld einfügen: true,false
sp_fieldset_iterate[index].sp_field_iterate[index].sp_errorInvalid String Fehlermeldung nach Validierung für:Email, Nummer, Upload
sp_fieldset_iterate[index].sp_field_iterate[index].sp_errorMissing String Fehlermeldung, wenn das Feld ein Pflichtfeld ist und nicht befüllt wurde

PHP Datenstruktur

Model

SP\SiteKit\Model\Content\Form\**