<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://de.contaowiki.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://de.contaowiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ferni</id>
		<title>Contao Community Documentation - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://de.contaowiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ferni"/>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Spezial:Beitr%C3%A4ge/Ferni"/>
		<updated>2026-05-02T09:16:55Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.22.6</generator>

	<entry>
		<id>https://de.contaowiki.org/Klasse_Formular</id>
		<title>Klasse Formular</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Klasse_Formular"/>
				<updated>2012-12-19T12:51:08Z</updated>
		
		<summary type="html">&lt;p&gt;Ferni: /* Anwendungsbeispiel Filter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Github:''' https://github.com/psi-4ward/Formular&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Beispiel =&lt;br /&gt;
&lt;br /&gt;
Die Klasse ''Formular'' erstellt Formulare aus DCA-Arrays:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Die DCA-Definition&lt;br /&gt;
$dca = array&lt;br /&gt;
(&lt;br /&gt;
        'Kontaktdaten' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Ihre Kontaktdaten',&lt;br /&gt;
                'inputType'     =&amp;gt; 'headline'&lt;br /&gt;
        ),&lt;br /&gt;
        'vorname' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Vorname',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; 'vorname',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'helpmessage'=&amp;gt;'Ihr Vorname')&lt;br /&gt;
        ),&lt;br /&gt;
        'nachname' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Nachname',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; 'nachname',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'helpmessage'=&amp;gt;'Ihr Nachname')       &lt;br /&gt;
        ),&lt;br /&gt;
        'datum' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Datum',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; date('d.m.Y'),&lt;br /&gt;
                'eval'          =&amp;gt; array('datepicker'=&amp;gt;$this-&amp;gt;getDatePickerString(),'cleardefault'=&amp;gt;false)      &lt;br /&gt;
        ),&lt;br /&gt;
&lt;br /&gt;
        'email' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'E-Mail',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'rgxp'=&amp;gt;'email')             &lt;br /&gt;
        ),&lt;br /&gt;
        'telefon' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Telefon',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true)             &lt;br /&gt;
        ),&lt;br /&gt;
        'kategorie' =&amp;gt; array&lt;br /&gt;
            (&lt;br /&gt;
                'label'         =&amp;gt; 'Kategorie',&lt;br /&gt;
                'inputType'     =&amp;gt; 'checkbox',&lt;br /&gt;
                'options'       =&amp;gt; array('Option1','Option2','Option3','Option4'),&lt;br /&gt;
                'eval'          =&amp;gt; array('multiple' =&amp;gt; true, 'mandatory' =&amp;gt; true),&lt;br /&gt;
            ),&lt;br /&gt;
        'bemerkung' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Bemerkung',&lt;br /&gt;
                'inputType'     =&amp;gt; 'textarea',&lt;br /&gt;
                'eval'          =&amp;gt; array('rte'=&amp;gt;'tinyMCE')&lt;br /&gt;
        ),&lt;br /&gt;
        'submit' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'speichern',&lt;br /&gt;
                'inputType'     =&amp;gt; 'submit'&lt;br /&gt;
        )&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
// Instantiirung mit der FormularID meinKontaktformular&lt;br /&gt;
$frm = new Formular('meinKontaktformular');&lt;br /&gt;
&lt;br /&gt;
// Übergabe des DCA-Arrays&lt;br /&gt;
$frm-&amp;gt;setDCA($dca);     &lt;br /&gt;
&lt;br /&gt;
// Konfiguration&lt;br /&gt;
$frm-&amp;gt;setConfig('generateFormat','&amp;lt;div&amp;gt;%label %field %error &amp;lt;/div&amp;gt;');&lt;br /&gt;
$frm-&amp;gt;setConfig('attributes',array('tableless'=&amp;gt;true));&lt;br /&gt;
&lt;br /&gt;
// Formular wurde abgeschickt und ist korrekt&lt;br /&gt;
if($frm-&amp;gt;isSubmitted() &amp;amp;&amp;amp; $frm-&amp;gt;validate())&lt;br /&gt;
{&lt;br /&gt;
        var_dump($frm-&amp;gt;getData());&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Ausgabe des Formulars&lt;br /&gt;
echo $frm-&amp;gt;parse();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
Es gibt einige Parameter um die Erstellung des Formulars zu beeinflussen.&lt;br /&gt;
Grundlegend muss zwischen '''parse()''' und '''generate()''' unterschieden werden, wobei parse() die Methode generate() impliziert.&lt;br /&gt;
Formular::parse() bettet den Output von generate() in das ''Template'' ein.&lt;br /&gt;
&lt;br /&gt;
==Parameter==&lt;br /&gt;
Die Konfiguration der Klasse Formular kann über '''Formular::setConfig($param,$value)''' geändert werden.&lt;br /&gt;
&lt;br /&gt;
* str '''formTemplate''': Wird das Formular über parse() gerendert wird dieses Template benutzt. Vorgabe: form&lt;br /&gt;
* str '''class''':  Zusätzliche Klassenangabe&lt;br /&gt;
* str '''action''': action-Attribut des &amp;lt;form&amp;gt; Tags. Vorgabe: Environment-&amp;gt;request&lt;br /&gt;
* str '''method''': method-Attribut des &amp;lt;form&amp;gt; Tags. Vorgabe: post&lt;br /&gt;
* str '''generateFormat''': String mit Platzhaltern welche für jedes Widget durch deren Elemente ersetzt werden. Vorgabe &amp;quot;%parse&amp;quot;&lt;br /&gt;
            %parse Widget::parse()&lt;br /&gt;
            %label Widget::generateLabel()&lt;br /&gt;
            %field Widget::generate()&lt;br /&gt;
            %error Widget::getErrorAsHTML()&lt;br /&gt;
            %errorPlain Widget::getErrorAsString()&lt;br /&gt;
* array '''attributes''': Array mit Attributen für die Widget::parse() Methode. Z.B. array('tableless'=&amp;gt;true)&lt;br /&gt;
&lt;br /&gt;
===Setzen von Default Werten===&lt;br /&gt;
&lt;br /&gt;
Um bei Select, Radio, Checkbox -Feldern die Standardwerte vorzubelegen kann man sich dem Magical-Setter bedienen: &lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$frm-&amp;gt;kategorie = array('Option1','Option2');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiel Filter===&lt;br /&gt;
&lt;br /&gt;
Will man einen mehrseitigen Filter mit der Klasse Formular erstellen und die Kriterien beim Blättern (Pagination) erhalten, kann man diese über get paramater (hinzugefügt über addToUrl()) wieder setzen: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
        $frm-&amp;gt;kategorie = \Input::get('kategorie');&lt;br /&gt;
        $frm-&amp;gt;branche = \Input::get('branche');&lt;br /&gt;
        $frm-&amp;gt;bundesland = \Input::get('bundesland');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Systemweite Konfiguration==&lt;br /&gt;
Die Formular-Klasse versucht Konfigurationsoptionen aus $GLOBALS['TL_FORM'] zu lesen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS['TL_FORM'] = array&lt;br /&gt;
(&lt;br /&gt;
   'class'            =&amp;gt;'myFormular',&lt;br /&gt;
   'generateFormat'   =&amp;gt; '&amp;lt;div class=&amp;quot;formField&amp;quot;&amp;gt;%label %error %field&amp;lt;/div&amp;gt;',&lt;br /&gt;
   'formTemplate'     =&amp;gt; 'myFormularTemplate'&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Interaktion mit Erweiterungen=&lt;br /&gt;
&lt;br /&gt;
==cleardefault==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/cleardefault.de.html Cleardefault] löscht den Standardwert sobald das Textfeld den Fokus bekommt.&lt;br /&gt;
Ist die Erweiterung installiert werden alle Textfelder und Textareas mit diesem Verhalten versehen. Über das @eval@ Array kann es für ein &lt;br /&gt;
einzelnes Feld angepasst werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dca = array(&lt;br /&gt;
    'datum' =&amp;gt; array&lt;br /&gt;
    (&lt;br /&gt;
        'label'      =&amp;gt; 'Datum',&lt;br /&gt;
        'inputType'  =&amp;gt; 'text',&lt;br /&gt;
        'default'    =&amp;gt; date('d.m.Y'),&lt;br /&gt;
        'eval'       =&amp;gt; array('cleardefault'=&amp;gt;false)      &lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
''' 'cleardefault'=&amp;gt;false''' deaktiviert das Löschen des Standardwertes für das Feld '''datum'''.&lt;br /&gt;
&lt;br /&gt;
==helpmessage==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/helpmessage.de.html Helpmessage] blendet per Javascript Hilfsnachrichten für das Feld ein.&lt;br /&gt;
Die Nachricht wird im '''eval''' Array hinterlegt. Falls über die Klasse '''FormularTL_DCA''' eine Tabelle gerendert wird, werden die Hilfstexte aus den Contao-Sprachdateien der Tabelle übernommen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dca = array(&lt;br /&gt;
    'datum' =&amp;gt; array&lt;br /&gt;
    (&lt;br /&gt;
        'label'      =&amp;gt; 'Datum',&lt;br /&gt;
        'inputType'  =&amp;gt; 'text',&lt;br /&gt;
        'default'    =&amp;gt; date('d.m.Y'),&lt;br /&gt;
        'eval'       =&amp;gt; array('helpmessage'=&amp;gt;'Das Datum muss im Format DD.MM.YYYY sein')&lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==formcheck==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/formcheck.de.html Formcheck] validiert ein Formular per Javascript auf der Clientseite.&lt;br /&gt;
Falls die Erweiterung (ab Version 1.3!) installiert ist funktionierte diese ohne weitere Konfiguration.&lt;/div&gt;</summary>
		<author><name>Ferni</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Klasse_Formular</id>
		<title>Klasse Formular</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Klasse_Formular"/>
				<updated>2012-12-19T12:50:26Z</updated>
		
		<summary type="html">&lt;p&gt;Ferni: /* Setzen von Default Werten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Github:''' https://github.com/psi-4ward/Formular&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Beispiel =&lt;br /&gt;
&lt;br /&gt;
Die Klasse ''Formular'' erstellt Formulare aus DCA-Arrays:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Die DCA-Definition&lt;br /&gt;
$dca = array&lt;br /&gt;
(&lt;br /&gt;
        'Kontaktdaten' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Ihre Kontaktdaten',&lt;br /&gt;
                'inputType'     =&amp;gt; 'headline'&lt;br /&gt;
        ),&lt;br /&gt;
        'vorname' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Vorname',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; 'vorname',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'helpmessage'=&amp;gt;'Ihr Vorname')&lt;br /&gt;
        ),&lt;br /&gt;
        'nachname' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Nachname',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; 'nachname',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'helpmessage'=&amp;gt;'Ihr Nachname')       &lt;br /&gt;
        ),&lt;br /&gt;
        'datum' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Datum',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; date('d.m.Y'),&lt;br /&gt;
                'eval'          =&amp;gt; array('datepicker'=&amp;gt;$this-&amp;gt;getDatePickerString(),'cleardefault'=&amp;gt;false)      &lt;br /&gt;
        ),&lt;br /&gt;
&lt;br /&gt;
        'email' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'E-Mail',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'rgxp'=&amp;gt;'email')             &lt;br /&gt;
        ),&lt;br /&gt;
        'telefon' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Telefon',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true)             &lt;br /&gt;
        ),&lt;br /&gt;
        'kategorie' =&amp;gt; array&lt;br /&gt;
            (&lt;br /&gt;
                'label'         =&amp;gt; 'Kategorie',&lt;br /&gt;
                'inputType'     =&amp;gt; 'checkbox',&lt;br /&gt;
                'options'       =&amp;gt; array('Option1','Option2','Option3','Option4'),&lt;br /&gt;
                'eval'          =&amp;gt; array('multiple' =&amp;gt; true, 'mandatory' =&amp;gt; true),&lt;br /&gt;
            ),&lt;br /&gt;
        'bemerkung' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Bemerkung',&lt;br /&gt;
                'inputType'     =&amp;gt; 'textarea',&lt;br /&gt;
                'eval'          =&amp;gt; array('rte'=&amp;gt;'tinyMCE')&lt;br /&gt;
        ),&lt;br /&gt;
        'submit' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'speichern',&lt;br /&gt;
                'inputType'     =&amp;gt; 'submit'&lt;br /&gt;
        )&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
// Instantiirung mit der FormularID meinKontaktformular&lt;br /&gt;
$frm = new Formular('meinKontaktformular');&lt;br /&gt;
&lt;br /&gt;
// Übergabe des DCA-Arrays&lt;br /&gt;
$frm-&amp;gt;setDCA($dca);     &lt;br /&gt;
&lt;br /&gt;
// Konfiguration&lt;br /&gt;
$frm-&amp;gt;setConfig('generateFormat','&amp;lt;div&amp;gt;%label %field %error &amp;lt;/div&amp;gt;');&lt;br /&gt;
$frm-&amp;gt;setConfig('attributes',array('tableless'=&amp;gt;true));&lt;br /&gt;
&lt;br /&gt;
// Formular wurde abgeschickt und ist korrekt&lt;br /&gt;
if($frm-&amp;gt;isSubmitted() &amp;amp;&amp;amp; $frm-&amp;gt;validate())&lt;br /&gt;
{&lt;br /&gt;
        var_dump($frm-&amp;gt;getData());&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Ausgabe des Formulars&lt;br /&gt;
echo $frm-&amp;gt;parse();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
Es gibt einige Parameter um die Erstellung des Formulars zu beeinflussen.&lt;br /&gt;
Grundlegend muss zwischen '''parse()''' und '''generate()''' unterschieden werden, wobei parse() die Methode generate() impliziert.&lt;br /&gt;
Formular::parse() bettet den Output von generate() in das ''Template'' ein.&lt;br /&gt;
&lt;br /&gt;
==Parameter==&lt;br /&gt;
Die Konfiguration der Klasse Formular kann über '''Formular::setConfig($param,$value)''' geändert werden.&lt;br /&gt;
&lt;br /&gt;
* str '''formTemplate''': Wird das Formular über parse() gerendert wird dieses Template benutzt. Vorgabe: form&lt;br /&gt;
* str '''class''':  Zusätzliche Klassenangabe&lt;br /&gt;
* str '''action''': action-Attribut des &amp;lt;form&amp;gt; Tags. Vorgabe: Environment-&amp;gt;request&lt;br /&gt;
* str '''method''': method-Attribut des &amp;lt;form&amp;gt; Tags. Vorgabe: post&lt;br /&gt;
* str '''generateFormat''': String mit Platzhaltern welche für jedes Widget durch deren Elemente ersetzt werden. Vorgabe &amp;quot;%parse&amp;quot;&lt;br /&gt;
            %parse Widget::parse()&lt;br /&gt;
            %label Widget::generateLabel()&lt;br /&gt;
            %field Widget::generate()&lt;br /&gt;
            %error Widget::getErrorAsHTML()&lt;br /&gt;
            %errorPlain Widget::getErrorAsString()&lt;br /&gt;
* array '''attributes''': Array mit Attributen für die Widget::parse() Methode. Z.B. array('tableless'=&amp;gt;true)&lt;br /&gt;
&lt;br /&gt;
===Setzen von Default Werten===&lt;br /&gt;
&lt;br /&gt;
Um bei Select, Radio, Checkbox -Feldern die Standardwerte vorzubelegen kann man sich dem Magical-Setter bedienen: &lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$frm-&amp;gt;kategorie = array('Option1','Option2');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiel Filter===&lt;br /&gt;
&lt;br /&gt;
Will man einen mehrseitigen Filter mit der Klasse Formular erstellen und die Kriterien beim Blättern (Pagination) erhalten, kann man diese über get paramater (hinzugefügt über addToUrl()) wieder setzen: &lt;br /&gt;
&lt;br /&gt;
        $frm-&amp;gt;kategorie = \Input::get('kategorie');&lt;br /&gt;
        $frm-&amp;gt;branche = \Input::get('branche');&lt;br /&gt;
        $frm-&amp;gt;bundesland = \Input::get('bundesland');&lt;br /&gt;
&lt;br /&gt;
==Systemweite Konfiguration==&lt;br /&gt;
Die Formular-Klasse versucht Konfigurationsoptionen aus $GLOBALS['TL_FORM'] zu lesen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS['TL_FORM'] = array&lt;br /&gt;
(&lt;br /&gt;
   'class'            =&amp;gt;'myFormular',&lt;br /&gt;
   'generateFormat'   =&amp;gt; '&amp;lt;div class=&amp;quot;formField&amp;quot;&amp;gt;%label %error %field&amp;lt;/div&amp;gt;',&lt;br /&gt;
   'formTemplate'     =&amp;gt; 'myFormularTemplate'&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Interaktion mit Erweiterungen=&lt;br /&gt;
&lt;br /&gt;
==cleardefault==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/cleardefault.de.html Cleardefault] löscht den Standardwert sobald das Textfeld den Fokus bekommt.&lt;br /&gt;
Ist die Erweiterung installiert werden alle Textfelder und Textareas mit diesem Verhalten versehen. Über das @eval@ Array kann es für ein &lt;br /&gt;
einzelnes Feld angepasst werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dca = array(&lt;br /&gt;
    'datum' =&amp;gt; array&lt;br /&gt;
    (&lt;br /&gt;
        'label'      =&amp;gt; 'Datum',&lt;br /&gt;
        'inputType'  =&amp;gt; 'text',&lt;br /&gt;
        'default'    =&amp;gt; date('d.m.Y'),&lt;br /&gt;
        'eval'       =&amp;gt; array('cleardefault'=&amp;gt;false)      &lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
''' 'cleardefault'=&amp;gt;false''' deaktiviert das Löschen des Standardwertes für das Feld '''datum'''.&lt;br /&gt;
&lt;br /&gt;
==helpmessage==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/helpmessage.de.html Helpmessage] blendet per Javascript Hilfsnachrichten für das Feld ein.&lt;br /&gt;
Die Nachricht wird im '''eval''' Array hinterlegt. Falls über die Klasse '''FormularTL_DCA''' eine Tabelle gerendert wird, werden die Hilfstexte aus den Contao-Sprachdateien der Tabelle übernommen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dca = array(&lt;br /&gt;
    'datum' =&amp;gt; array&lt;br /&gt;
    (&lt;br /&gt;
        'label'      =&amp;gt; 'Datum',&lt;br /&gt;
        'inputType'  =&amp;gt; 'text',&lt;br /&gt;
        'default'    =&amp;gt; date('d.m.Y'),&lt;br /&gt;
        'eval'       =&amp;gt; array('helpmessage'=&amp;gt;'Das Datum muss im Format DD.MM.YYYY sein')&lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==formcheck==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/formcheck.de.html Formcheck] validiert ein Formular per Javascript auf der Clientseite.&lt;br /&gt;
Falls die Erweiterung (ab Version 1.3!) installiert ist funktionierte diese ohne weitere Konfiguration.&lt;/div&gt;</summary>
		<author><name>Ferni</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Klasse_Formular</id>
		<title>Klasse Formular</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Klasse_Formular"/>
				<updated>2012-12-10T13:08:17Z</updated>
		
		<summary type="html">&lt;p&gt;Ferni: /* Parameter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Github:''' https://github.com/psi-4ward/Formular&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Beispiel =&lt;br /&gt;
&lt;br /&gt;
Die Klasse ''Formular'' erstellt Formulare aus DCA-Arrays:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Die DCA-Definition&lt;br /&gt;
$dca = array&lt;br /&gt;
(&lt;br /&gt;
        'Kontaktdaten' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Ihre Kontaktdaten',&lt;br /&gt;
                'inputType'     =&amp;gt; 'headline'&lt;br /&gt;
        ),&lt;br /&gt;
        'vorname' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Vorname',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; 'vorname',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'helpmessage'=&amp;gt;'Ihr Vorname')&lt;br /&gt;
        ),&lt;br /&gt;
        'nachname' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Nachname',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; 'nachname',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'helpmessage'=&amp;gt;'Ihr Nachname')       &lt;br /&gt;
        ),&lt;br /&gt;
        'datum' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Datum',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; date('d.m.Y'),&lt;br /&gt;
                'eval'          =&amp;gt; array('datepicker'=&amp;gt;$this-&amp;gt;getDatePickerString(),'cleardefault'=&amp;gt;false)      &lt;br /&gt;
        ),&lt;br /&gt;
&lt;br /&gt;
        'email' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'E-Mail',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'rgxp'=&amp;gt;'email')             &lt;br /&gt;
        ),&lt;br /&gt;
        'telefon' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Telefon',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true)             &lt;br /&gt;
        ),&lt;br /&gt;
        'kategorie' =&amp;gt; array&lt;br /&gt;
            (&lt;br /&gt;
                'label'         =&amp;gt; 'Kategorie',&lt;br /&gt;
                'inputType'     =&amp;gt; 'checkbox',&lt;br /&gt;
                'options'       =&amp;gt; array('Option1','Option2','Option3','Option4'),&lt;br /&gt;
                'eval'          =&amp;gt; array('multiple' =&amp;gt; true, 'mandatory' =&amp;gt; true),&lt;br /&gt;
            ),&lt;br /&gt;
        'bemerkung' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Bemerkung',&lt;br /&gt;
                'inputType'     =&amp;gt; 'textarea',&lt;br /&gt;
                'eval'          =&amp;gt; array('rte'=&amp;gt;'tinyMCE')&lt;br /&gt;
        ),&lt;br /&gt;
        'submit' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'speichern',&lt;br /&gt;
                'inputType'     =&amp;gt; 'submit'&lt;br /&gt;
        )&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
// Instantiirung mit der FormularID meinKontaktformular&lt;br /&gt;
$frm = new Formular('meinKontaktformular');&lt;br /&gt;
&lt;br /&gt;
// Übergabe des DCA-Arrays&lt;br /&gt;
$frm-&amp;gt;setDCA($dca);     &lt;br /&gt;
&lt;br /&gt;
// Konfiguration&lt;br /&gt;
$frm-&amp;gt;setConfig('generateFormat','&amp;lt;div&amp;gt;%label %field %error &amp;lt;/div&amp;gt;');&lt;br /&gt;
$frm-&amp;gt;setConfig('attributes',array('tableless'=&amp;gt;true));&lt;br /&gt;
&lt;br /&gt;
// Formular wurde abgeschickt und ist korrekt&lt;br /&gt;
if($frm-&amp;gt;isSubmitted() &amp;amp;&amp;amp; $frm-&amp;gt;validate())&lt;br /&gt;
{&lt;br /&gt;
        var_dump($frm-&amp;gt;getData());&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Ausgabe des Formulars&lt;br /&gt;
echo $frm-&amp;gt;parse();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
Es gibt einige Parameter um die Erstellung des Formulars zu beeinflussen.&lt;br /&gt;
Grundlegend muss zwischen '''parse()''' und '''generate()''' unterschieden werden, wobei parse() die Methode generate() impliziert.&lt;br /&gt;
Formular::parse() bettet den Output von generate() in das ''Template'' ein.&lt;br /&gt;
&lt;br /&gt;
==Parameter==&lt;br /&gt;
Die Konfiguration der Klasse Formular kann über '''Formular::setConfig($param,$value)''' geändert werden.&lt;br /&gt;
&lt;br /&gt;
* str '''formTemplate''': Wird das Formular über parse() gerendert wird dieses Template benutzt. Vorgabe: form&lt;br /&gt;
* str '''class''':  Zusätzliche Klassenangabe&lt;br /&gt;
* str '''action''': action-Attribut des &amp;lt;form&amp;gt; Tags. Vorgabe: Environment-&amp;gt;request&lt;br /&gt;
* str '''method''': method-Attribut des &amp;lt;form&amp;gt; Tags. Vorgabe: post&lt;br /&gt;
* str '''generateFormat''': String mit Platzhaltern welche für jedes Widget durch deren Elemente ersetzt werden. Vorgabe &amp;quot;%parse&amp;quot;&lt;br /&gt;
            %parse Widget::parse()&lt;br /&gt;
            %label Widget::generateLabel()&lt;br /&gt;
            %field Widget::generate()&lt;br /&gt;
            %error Widget::getErrorAsHTML()&lt;br /&gt;
            %errorPlain Widget::getErrorAsString()&lt;br /&gt;
* array '''attributes''': Array mit Attributen für die Widget::parse() Methode. Z.B. array('tableless'=&amp;gt;true)&lt;br /&gt;
&lt;br /&gt;
===Setzen von Default Werten===&lt;br /&gt;
&lt;br /&gt;
Um bei Select, Radio, Checkbox -Feldern die Standardwerte vorzubelegen kann man sich dem Magical-Setter bedienen: &lt;br /&gt;
&lt;br /&gt;
Beispiel: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$frm-&amp;gt;kategorie = array('Option1','Option2');&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Systemweite Konfiguration==&lt;br /&gt;
Die Formular-Klasse versucht Konfigurationsoptionen aus $GLOBALS['TL_FORM'] zu lesen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS['TL_FORM'] = array&lt;br /&gt;
(&lt;br /&gt;
   'class'            =&amp;gt;'myFormular',&lt;br /&gt;
   'generateFormat'   =&amp;gt; '&amp;lt;div class=&amp;quot;formField&amp;quot;&amp;gt;%label %error %field&amp;lt;/div&amp;gt;',&lt;br /&gt;
   'formTemplate'     =&amp;gt; 'myFormularTemplate'&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Interaktion mit Erweiterungen=&lt;br /&gt;
&lt;br /&gt;
==cleardefault==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/cleardefault.de.html Cleardefault] löscht den Standardwert sobald das Textfeld den Fokus bekommt.&lt;br /&gt;
Ist die Erweiterung installiert werden alle Textfelder und Textareas mit diesem Verhalten versehen. Über das @eval@ Array kann es für ein &lt;br /&gt;
einzelnes Feld angepasst werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dca = array(&lt;br /&gt;
    'datum' =&amp;gt; array&lt;br /&gt;
    (&lt;br /&gt;
        'label'      =&amp;gt; 'Datum',&lt;br /&gt;
        'inputType'  =&amp;gt; 'text',&lt;br /&gt;
        'default'    =&amp;gt; date('d.m.Y'),&lt;br /&gt;
        'eval'       =&amp;gt; array('cleardefault'=&amp;gt;false)      &lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
''' 'cleardefault'=&amp;gt;false''' deaktiviert das Löschen des Standardwertes für das Feld '''datum'''.&lt;br /&gt;
&lt;br /&gt;
==helpmessage==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/helpmessage.de.html Helpmessage] blendet per Javascript Hilfsnachrichten für das Feld ein.&lt;br /&gt;
Die Nachricht wird im '''eval''' Array hinterlegt. Falls über die Klasse '''FormularTL_DCA''' eine Tabelle gerendert wird, werden die Hilfstexte aus den Contao-Sprachdateien der Tabelle übernommen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dca = array(&lt;br /&gt;
    'datum' =&amp;gt; array&lt;br /&gt;
    (&lt;br /&gt;
        'label'      =&amp;gt; 'Datum',&lt;br /&gt;
        'inputType'  =&amp;gt; 'text',&lt;br /&gt;
        'default'    =&amp;gt; date('d.m.Y'),&lt;br /&gt;
        'eval'       =&amp;gt; array('helpmessage'=&amp;gt;'Das Datum muss im Format DD.MM.YYYY sein')&lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==formcheck==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/formcheck.de.html Formcheck] validiert ein Formular per Javascript auf der Clientseite.&lt;br /&gt;
Falls die Erweiterung (ab Version 1.3!) installiert ist funktionierte diese ohne weitere Konfiguration.&lt;/div&gt;</summary>
		<author><name>Ferni</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Klasse_Formular</id>
		<title>Klasse Formular</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Klasse_Formular"/>
				<updated>2012-12-10T13:02:47Z</updated>
		
		<summary type="html">&lt;p&gt;Ferni: /* Beispiel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Github:''' https://github.com/psi-4ward/Formular&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Beispiel =&lt;br /&gt;
&lt;br /&gt;
Die Klasse ''Formular'' erstellt Formulare aus DCA-Arrays:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Die DCA-Definition&lt;br /&gt;
$dca = array&lt;br /&gt;
(&lt;br /&gt;
        'Kontaktdaten' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Ihre Kontaktdaten',&lt;br /&gt;
                'inputType'     =&amp;gt; 'headline'&lt;br /&gt;
        ),&lt;br /&gt;
        'vorname' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Vorname',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; 'vorname',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'helpmessage'=&amp;gt;'Ihr Vorname')&lt;br /&gt;
        ),&lt;br /&gt;
        'nachname' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Nachname',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; 'nachname',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'helpmessage'=&amp;gt;'Ihr Nachname')       &lt;br /&gt;
        ),&lt;br /&gt;
        'datum' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Datum',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; date('d.m.Y'),&lt;br /&gt;
                'eval'          =&amp;gt; array('datepicker'=&amp;gt;$this-&amp;gt;getDatePickerString(),'cleardefault'=&amp;gt;false)      &lt;br /&gt;
        ),&lt;br /&gt;
&lt;br /&gt;
        'email' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'E-Mail',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'rgxp'=&amp;gt;'email')             &lt;br /&gt;
        ),&lt;br /&gt;
        'telefon' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Telefon',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true)             &lt;br /&gt;
        ),&lt;br /&gt;
        'kategorie' =&amp;gt; array&lt;br /&gt;
            (&lt;br /&gt;
                'label'         =&amp;gt; 'Kategorie',&lt;br /&gt;
                'inputType'     =&amp;gt; 'checkbox',&lt;br /&gt;
                'options'       =&amp;gt; array('Option1','Option2','Option3','Option4'),&lt;br /&gt;
                'eval'          =&amp;gt; array('multiple' =&amp;gt; true, 'mandatory' =&amp;gt; true),&lt;br /&gt;
            ),&lt;br /&gt;
        'bemerkung' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Bemerkung',&lt;br /&gt;
                'inputType'     =&amp;gt; 'textarea',&lt;br /&gt;
                'eval'          =&amp;gt; array('rte'=&amp;gt;'tinyMCE')&lt;br /&gt;
        ),&lt;br /&gt;
        'submit' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'speichern',&lt;br /&gt;
                'inputType'     =&amp;gt; 'submit'&lt;br /&gt;
        )&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
// Instantiirung mit der FormularID meinKontaktformular&lt;br /&gt;
$frm = new Formular('meinKontaktformular');&lt;br /&gt;
&lt;br /&gt;
// Übergabe des DCA-Arrays&lt;br /&gt;
$frm-&amp;gt;setDCA($dca);     &lt;br /&gt;
&lt;br /&gt;
// Konfiguration&lt;br /&gt;
$frm-&amp;gt;setConfig('generateFormat','&amp;lt;div&amp;gt;%label %field %error &amp;lt;/div&amp;gt;');&lt;br /&gt;
$frm-&amp;gt;setConfig('attributes',array('tableless'=&amp;gt;true));&lt;br /&gt;
&lt;br /&gt;
// Formular wurde abgeschickt und ist korrekt&lt;br /&gt;
if($frm-&amp;gt;isSubmitted() &amp;amp;&amp;amp; $frm-&amp;gt;validate())&lt;br /&gt;
{&lt;br /&gt;
        var_dump($frm-&amp;gt;getData());&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Ausgabe des Formulars&lt;br /&gt;
echo $frm-&amp;gt;parse();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
Es gibt einige Parameter um die Erstellung des Formulars zu beeinflussen.&lt;br /&gt;
Grundlegend muss zwischen '''parse()''' und '''generate()''' unterschieden werden, wobei parse() die Methode generate() impliziert.&lt;br /&gt;
Formular::parse() bettet den Output von generate() in das ''Template'' ein.&lt;br /&gt;
&lt;br /&gt;
==Parameter==&lt;br /&gt;
Die Konfiguration der Klasse Formular kann über '''Formular::setConfig($param,$value)''' geändert werden.&lt;br /&gt;
&lt;br /&gt;
* str '''formTemplate''': Wird das Formular über parse() gerendert wird dieses Template benutzt. Vorgabe: form&lt;br /&gt;
* str '''class''':  Zusätzliche Klassenangabe&lt;br /&gt;
* str '''action''': action-Attribut des &amp;lt;form&amp;gt; Tags. Vorgabe: Environment-&amp;gt;request&lt;br /&gt;
* str '''method''': method-Attribut des &amp;lt;form&amp;gt; Tags. Vorgabe: post&lt;br /&gt;
* str '''generateFormat''': String mit Platzhaltern welche für jedes Widget durch deren Elemente ersetzt werden. Vorgabe &amp;quot;%parse&amp;quot;&lt;br /&gt;
            %parse Widget::parse()&lt;br /&gt;
            %label Widget::generateLabel()&lt;br /&gt;
            %field Widget::generate()&lt;br /&gt;
            %error Widget::getErrorAsHTML()&lt;br /&gt;
            %errorPlain Widget::getErrorAsString()&lt;br /&gt;
* array '''attributes''': Array mit Attributen für die Widget::parse() Methode. Z.B. array('tableless'=&amp;gt;true)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Systemweite Konfiguration==&lt;br /&gt;
Die Formular-Klasse versucht Konfigurationsoptionen aus $GLOBALS['TL_FORM'] zu lesen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS['TL_FORM'] = array&lt;br /&gt;
(&lt;br /&gt;
   'class'            =&amp;gt;'myFormular',&lt;br /&gt;
   'generateFormat'   =&amp;gt; '&amp;lt;div class=&amp;quot;formField&amp;quot;&amp;gt;%label %error %field&amp;lt;/div&amp;gt;',&lt;br /&gt;
   'formTemplate'     =&amp;gt; 'myFormularTemplate'&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Interaktion mit Erweiterungen=&lt;br /&gt;
&lt;br /&gt;
==cleardefault==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/cleardefault.de.html Cleardefault] löscht den Standardwert sobald das Textfeld den Fokus bekommt.&lt;br /&gt;
Ist die Erweiterung installiert werden alle Textfelder und Textareas mit diesem Verhalten versehen. Über das @eval@ Array kann es für ein &lt;br /&gt;
einzelnes Feld angepasst werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dca = array(&lt;br /&gt;
    'datum' =&amp;gt; array&lt;br /&gt;
    (&lt;br /&gt;
        'label'      =&amp;gt; 'Datum',&lt;br /&gt;
        'inputType'  =&amp;gt; 'text',&lt;br /&gt;
        'default'    =&amp;gt; date('d.m.Y'),&lt;br /&gt;
        'eval'       =&amp;gt; array('cleardefault'=&amp;gt;false)      &lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
''' 'cleardefault'=&amp;gt;false''' deaktiviert das Löschen des Standardwertes für das Feld '''datum'''.&lt;br /&gt;
&lt;br /&gt;
==helpmessage==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/helpmessage.de.html Helpmessage] blendet per Javascript Hilfsnachrichten für das Feld ein.&lt;br /&gt;
Die Nachricht wird im '''eval''' Array hinterlegt. Falls über die Klasse '''FormularTL_DCA''' eine Tabelle gerendert wird, werden die Hilfstexte aus den Contao-Sprachdateien der Tabelle übernommen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dca = array(&lt;br /&gt;
    'datum' =&amp;gt; array&lt;br /&gt;
    (&lt;br /&gt;
        'label'      =&amp;gt; 'Datum',&lt;br /&gt;
        'inputType'  =&amp;gt; 'text',&lt;br /&gt;
        'default'    =&amp;gt; date('d.m.Y'),&lt;br /&gt;
        'eval'       =&amp;gt; array('helpmessage'=&amp;gt;'Das Datum muss im Format DD.MM.YYYY sein')&lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==formcheck==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/formcheck.de.html Formcheck] validiert ein Formular per Javascript auf der Clientseite.&lt;br /&gt;
Falls die Erweiterung (ab Version 1.3!) installiert ist funktionierte diese ohne weitere Konfiguration.&lt;/div&gt;</summary>
		<author><name>Ferni</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Klasse_Formular</id>
		<title>Klasse Formular</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Klasse_Formular"/>
				<updated>2012-12-10T13:01:39Z</updated>
		
		<summary type="html">&lt;p&gt;Ferni: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Github:''' https://github.com/psi-4ward/Formular&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Beispiel =&lt;br /&gt;
&lt;br /&gt;
Die Klasse ''Formular'' erstellt Formulare aus DCA-Arrays:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Die DCA-Definition&lt;br /&gt;
$dca = array&lt;br /&gt;
(&lt;br /&gt;
        'Kontaktdaten' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Ihre Kontaktdaten',&lt;br /&gt;
                'inputType'     =&amp;gt; 'headline'&lt;br /&gt;
        ),&lt;br /&gt;
        'vorname' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Vorname',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; 'vorname',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'helpmessage'=&amp;gt;'Ihr Vorname')&lt;br /&gt;
        ),&lt;br /&gt;
        'nachname' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Nachname',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; 'nachname',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'helpmessage'=&amp;gt;'Ihr Nachname')       &lt;br /&gt;
        ),&lt;br /&gt;
        'datum' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Datum',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; date('d.m.Y'),&lt;br /&gt;
                'eval'          =&amp;gt; array('datepicker'=&amp;gt;$this-&amp;gt;getDatePickerString(),'cleardefault'=&amp;gt;false)      &lt;br /&gt;
        ),&lt;br /&gt;
&lt;br /&gt;
        'email' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'E-Mail',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'rgxp'=&amp;gt;'email')             &lt;br /&gt;
        ),&lt;br /&gt;
        'telefon' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Telefon',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true)             &lt;br /&gt;
        ),&lt;br /&gt;
        'kategorie' =&amp;gt; array&lt;br /&gt;
            (&lt;br /&gt;
                'label' =&amp;gt; 'Kategorie',&lt;br /&gt;
                'inputType' =&amp;gt; 'checkbox',&lt;br /&gt;
                'options' =&amp;gt; array('Option1','Option2','Option3','Option4'),&lt;br /&gt;
                'eval' =&amp;gt; array('multiple' =&amp;gt; true, 'mandatory' =&amp;gt; true),&lt;br /&gt;
            ),&lt;br /&gt;
        'bemerkung' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Bemerkung',&lt;br /&gt;
                'inputType'     =&amp;gt; 'textarea',&lt;br /&gt;
                'eval'          =&amp;gt; array('rte'=&amp;gt;'tinyMCE')&lt;br /&gt;
        ),&lt;br /&gt;
        'submit' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'speichern',&lt;br /&gt;
                'inputType'     =&amp;gt; 'submit'&lt;br /&gt;
        )&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
// Instantiirung mit der FormularID meinKontaktformular&lt;br /&gt;
$frm = new Formular('meinKontaktformular');&lt;br /&gt;
&lt;br /&gt;
// Übergabe des DCA-Arrays&lt;br /&gt;
$frm-&amp;gt;setDCA($dca);     &lt;br /&gt;
&lt;br /&gt;
// Konfiguration&lt;br /&gt;
$frm-&amp;gt;setConfig('generateFormat','&amp;lt;div&amp;gt;%label %field %error &amp;lt;/div&amp;gt;');&lt;br /&gt;
$frm-&amp;gt;setConfig('attributes',array('tableless'=&amp;gt;true));&lt;br /&gt;
&lt;br /&gt;
// Formular wurde abgeschickt und ist korrekt&lt;br /&gt;
if($frm-&amp;gt;isSubmitted() &amp;amp;&amp;amp; $frm-&amp;gt;validate())&lt;br /&gt;
{&lt;br /&gt;
        var_dump($frm-&amp;gt;getData());&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Ausgabe des Formulars&lt;br /&gt;
echo $frm-&amp;gt;parse();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
Es gibt einige Parameter um die Erstellung des Formulars zu beeinflussen.&lt;br /&gt;
Grundlegend muss zwischen '''parse()''' und '''generate()''' unterschieden werden, wobei parse() die Methode generate() impliziert.&lt;br /&gt;
Formular::parse() bettet den Output von generate() in das ''Template'' ein.&lt;br /&gt;
&lt;br /&gt;
==Parameter==&lt;br /&gt;
Die Konfiguration der Klasse Formular kann über '''Formular::setConfig($param,$value)''' geändert werden.&lt;br /&gt;
&lt;br /&gt;
* str '''formTemplate''': Wird das Formular über parse() gerendert wird dieses Template benutzt. Vorgabe: form&lt;br /&gt;
* str '''class''':  Zusätzliche Klassenangabe&lt;br /&gt;
* str '''action''': action-Attribut des &amp;lt;form&amp;gt; Tags. Vorgabe: Environment-&amp;gt;request&lt;br /&gt;
* str '''method''': method-Attribut des &amp;lt;form&amp;gt; Tags. Vorgabe: post&lt;br /&gt;
* str '''generateFormat''': String mit Platzhaltern welche für jedes Widget durch deren Elemente ersetzt werden. Vorgabe &amp;quot;%parse&amp;quot;&lt;br /&gt;
            %parse Widget::parse()&lt;br /&gt;
            %label Widget::generateLabel()&lt;br /&gt;
            %field Widget::generate()&lt;br /&gt;
            %error Widget::getErrorAsHTML()&lt;br /&gt;
            %errorPlain Widget::getErrorAsString()&lt;br /&gt;
* array '''attributes''': Array mit Attributen für die Widget::parse() Methode. Z.B. array('tableless'=&amp;gt;true)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Systemweite Konfiguration==&lt;br /&gt;
Die Formular-Klasse versucht Konfigurationsoptionen aus $GLOBALS['TL_FORM'] zu lesen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS['TL_FORM'] = array&lt;br /&gt;
(&lt;br /&gt;
   'class'            =&amp;gt;'myFormular',&lt;br /&gt;
   'generateFormat'   =&amp;gt; '&amp;lt;div class=&amp;quot;formField&amp;quot;&amp;gt;%label %error %field&amp;lt;/div&amp;gt;',&lt;br /&gt;
   'formTemplate'     =&amp;gt; 'myFormularTemplate'&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Interaktion mit Erweiterungen=&lt;br /&gt;
&lt;br /&gt;
==cleardefault==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/cleardefault.de.html Cleardefault] löscht den Standardwert sobald das Textfeld den Fokus bekommt.&lt;br /&gt;
Ist die Erweiterung installiert werden alle Textfelder und Textareas mit diesem Verhalten versehen. Über das @eval@ Array kann es für ein &lt;br /&gt;
einzelnes Feld angepasst werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dca = array(&lt;br /&gt;
    'datum' =&amp;gt; array&lt;br /&gt;
    (&lt;br /&gt;
        'label'      =&amp;gt; 'Datum',&lt;br /&gt;
        'inputType'  =&amp;gt; 'text',&lt;br /&gt;
        'default'    =&amp;gt; date('d.m.Y'),&lt;br /&gt;
        'eval'       =&amp;gt; array('cleardefault'=&amp;gt;false)      &lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
''' 'cleardefault'=&amp;gt;false''' deaktiviert das Löschen des Standardwertes für das Feld '''datum'''.&lt;br /&gt;
&lt;br /&gt;
==helpmessage==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/helpmessage.de.html Helpmessage] blendet per Javascript Hilfsnachrichten für das Feld ein.&lt;br /&gt;
Die Nachricht wird im '''eval''' Array hinterlegt. Falls über die Klasse '''FormularTL_DCA''' eine Tabelle gerendert wird, werden die Hilfstexte aus den Contao-Sprachdateien der Tabelle übernommen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dca = array(&lt;br /&gt;
    'datum' =&amp;gt; array&lt;br /&gt;
    (&lt;br /&gt;
        'label'      =&amp;gt; 'Datum',&lt;br /&gt;
        'inputType'  =&amp;gt; 'text',&lt;br /&gt;
        'default'    =&amp;gt; date('d.m.Y'),&lt;br /&gt;
        'eval'       =&amp;gt; array('helpmessage'=&amp;gt;'Das Datum muss im Format DD.MM.YYYY sein')&lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==formcheck==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/formcheck.de.html Formcheck] validiert ein Formular per Javascript auf der Clientseite.&lt;br /&gt;
Falls die Erweiterung (ab Version 1.3!) installiert ist funktionierte diese ohne weitere Konfiguration.&lt;/div&gt;</summary>
		<author><name>Ferni</name></author>	</entry>

	<entry>
		<id>https://de.contaowiki.org/Klasse_Formular</id>
		<title>Klasse Formular</title>
		<link rel="alternate" type="text/html" href="https://de.contaowiki.org/Klasse_Formular"/>
				<updated>2012-12-10T12:56:12Z</updated>
		
		<summary type="html">&lt;p&gt;Ferni: /* Beispiel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Dev HOWTOS]]&lt;br /&gt;
[[Category:Dev Snippets]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Github:''' https://github.com/psi-4ward/Formular&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Beispiel =&lt;br /&gt;
&lt;br /&gt;
Die Klasse ''Formular'' erstellt Formulare aus DCA-Arrays:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Die DCA-Definition&lt;br /&gt;
$dca = array&lt;br /&gt;
(&lt;br /&gt;
        'Kontaktdaten' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Ihre Kontaktdaten',&lt;br /&gt;
                'inputType'     =&amp;gt; 'headline'&lt;br /&gt;
        ),&lt;br /&gt;
        'vorname' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Vorname',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; 'vorname',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'helpmessage'=&amp;gt;'Ihr Vorname')&lt;br /&gt;
        ),&lt;br /&gt;
        'nachname' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Nachname',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; 'nachname',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'helpmessage'=&amp;gt;'Ihr Nachname')       &lt;br /&gt;
        ),&lt;br /&gt;
        'datum' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Datum',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'default'       =&amp;gt; date('d.m.Y'),&lt;br /&gt;
                'eval'          =&amp;gt; array('datepicker'=&amp;gt;$this-&amp;gt;getDatePickerString(),'cleardefault'=&amp;gt;false)      &lt;br /&gt;
        ),&lt;br /&gt;
&lt;br /&gt;
        'email' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'E-Mail',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true,'rgxp'=&amp;gt;'email')             &lt;br /&gt;
        ),&lt;br /&gt;
        'telefon' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Telefon',&lt;br /&gt;
                'inputType'     =&amp;gt; 'text',&lt;br /&gt;
                'eval'          =&amp;gt; array('mandatory'=&amp;gt;true)             &lt;br /&gt;
        ),&lt;br /&gt;
        'kategorie' =&amp;gt; array&lt;br /&gt;
            (&lt;br /&gt;
                'label' =&amp;gt; 'Kategorie',&lt;br /&gt;
                'inputType' =&amp;gt; 'checkbox',&lt;br /&gt;
                'value' =&amp;gt; array('Option1', 'Option3'), // Setzt Option1 &amp;amp; 3 auf checked&lt;br /&gt;
                'options' =&amp;gt; array('Option1','Option2','Option3','Option4'),&lt;br /&gt;
                'eval' =&amp;gt; array('multiple' =&amp;gt; true, 'mandatory' =&amp;gt; true),&lt;br /&gt;
            ),&lt;br /&gt;
        'bemerkung' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'Bemerkung',&lt;br /&gt;
                'inputType'     =&amp;gt; 'textarea',&lt;br /&gt;
                'eval'          =&amp;gt; array('rte'=&amp;gt;'tinyMCE')&lt;br /&gt;
        ),&lt;br /&gt;
        'submit' =&amp;gt; array&lt;br /&gt;
        (&lt;br /&gt;
                'label'         =&amp;gt; 'speichern',&lt;br /&gt;
                'inputType'     =&amp;gt; 'submit'&lt;br /&gt;
        )&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
// Instantiirung mit der FormularID meinKontaktformular&lt;br /&gt;
$frm = new Formular('meinKontaktformular');&lt;br /&gt;
&lt;br /&gt;
// Übergabe des DCA-Arrays&lt;br /&gt;
$frm-&amp;gt;setDCA($dca);     &lt;br /&gt;
&lt;br /&gt;
// Konfiguration&lt;br /&gt;
$frm-&amp;gt;setConfig('generateFormat','&amp;lt;div&amp;gt;%label %field %error &amp;lt;/div&amp;gt;');&lt;br /&gt;
$frm-&amp;gt;setConfig('attributes',array('tableless'=&amp;gt;true));&lt;br /&gt;
&lt;br /&gt;
// Formular wurde abgeschickt und ist korrekt&lt;br /&gt;
if($frm-&amp;gt;isSubmitted() &amp;amp;&amp;amp; $frm-&amp;gt;validate())&lt;br /&gt;
{&lt;br /&gt;
        var_dump($frm-&amp;gt;getData());&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Ausgabe des Formulars&lt;br /&gt;
echo $frm-&amp;gt;parse();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Konfiguration=&lt;br /&gt;
&lt;br /&gt;
Es gibt einige Parameter um die Erstellung des Formulars zu beeinflussen.&lt;br /&gt;
Grundlegend muss zwischen '''parse()''' und '''generate()''' unterschieden werden, wobei parse() die Methode generate() impliziert.&lt;br /&gt;
Formular::parse() bettet den Output von generate() in das ''Template'' ein.&lt;br /&gt;
&lt;br /&gt;
==Parameter==&lt;br /&gt;
Die Konfiguration der Klasse Formular kann über '''Formular::setConfig($param,$value)''' geändert werden.&lt;br /&gt;
&lt;br /&gt;
* str '''formTemplate''': Wird das Formular über parse() gerendert wird dieses Template benutzt. Vorgabe: form&lt;br /&gt;
* str '''class''':  Zusätzliche Klassenangabe&lt;br /&gt;
* str '''action''': action-Attribut des &amp;lt;form&amp;gt; Tags. Vorgabe: Environment-&amp;gt;request&lt;br /&gt;
* str '''method''': method-Attribut des &amp;lt;form&amp;gt; Tags. Vorgabe: post&lt;br /&gt;
* str '''generateFormat''': String mit Platzhaltern welche für jedes Widget durch deren Elemente ersetzt werden. Vorgabe &amp;quot;%parse&amp;quot;&lt;br /&gt;
            %parse Widget::parse()&lt;br /&gt;
            %label Widget::generateLabel()&lt;br /&gt;
            %field Widget::generate()&lt;br /&gt;
            %error Widget::getErrorAsHTML()&lt;br /&gt;
            %errorPlain Widget::getErrorAsString()&lt;br /&gt;
* array '''attributes''': Array mit Attributen für die Widget::parse() Methode. Z.B. array('tableless'=&amp;gt;true)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Systemweite Konfiguration==&lt;br /&gt;
Die Formular-Klasse versucht Konfigurationsoptionen aus $GLOBALS['TL_FORM'] zu lesen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$GLOBALS['TL_FORM'] = array&lt;br /&gt;
(&lt;br /&gt;
   'class'            =&amp;gt;'myFormular',&lt;br /&gt;
   'generateFormat'   =&amp;gt; '&amp;lt;div class=&amp;quot;formField&amp;quot;&amp;gt;%label %error %field&amp;lt;/div&amp;gt;',&lt;br /&gt;
   'formTemplate'     =&amp;gt; 'myFormularTemplate'&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Interaktion mit Erweiterungen=&lt;br /&gt;
&lt;br /&gt;
==cleardefault==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/cleardefault.de.html Cleardefault] löscht den Standardwert sobald das Textfeld den Fokus bekommt.&lt;br /&gt;
Ist die Erweiterung installiert werden alle Textfelder und Textareas mit diesem Verhalten versehen. Über das @eval@ Array kann es für ein &lt;br /&gt;
einzelnes Feld angepasst werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dca = array(&lt;br /&gt;
    'datum' =&amp;gt; array&lt;br /&gt;
    (&lt;br /&gt;
        'label'      =&amp;gt; 'Datum',&lt;br /&gt;
        'inputType'  =&amp;gt; 'text',&lt;br /&gt;
        'default'    =&amp;gt; date('d.m.Y'),&lt;br /&gt;
        'eval'       =&amp;gt; array('cleardefault'=&amp;gt;false)      &lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
''' 'cleardefault'=&amp;gt;false''' deaktiviert das Löschen des Standardwertes für das Feld '''datum'''.&lt;br /&gt;
&lt;br /&gt;
==helpmessage==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/helpmessage.de.html Helpmessage] blendet per Javascript Hilfsnachrichten für das Feld ein.&lt;br /&gt;
Die Nachricht wird im '''eval''' Array hinterlegt. Falls über die Klasse '''FormularTL_DCA''' eine Tabelle gerendert wird, werden die Hilfstexte aus den Contao-Sprachdateien der Tabelle übernommen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$dca = array(&lt;br /&gt;
    'datum' =&amp;gt; array&lt;br /&gt;
    (&lt;br /&gt;
        'label'      =&amp;gt; 'Datum',&lt;br /&gt;
        'inputType'  =&amp;gt; 'text',&lt;br /&gt;
        'default'    =&amp;gt; date('d.m.Y'),&lt;br /&gt;
        'eval'       =&amp;gt; array('helpmessage'=&amp;gt;'Das Datum muss im Format DD.MM.YYYY sein')&lt;br /&gt;
    )&lt;br /&gt;
);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==formcheck==&lt;br /&gt;
&lt;br /&gt;
[http://www.contao.org/erweiterungsliste/view/formcheck.de.html Formcheck] validiert ein Formular per Javascript auf der Clientseite.&lt;br /&gt;
Falls die Erweiterung (ab Version 1.3!) installiert ist funktionierte diese ohne weitere Konfiguration.&lt;/div&gt;</summary>
		<author><name>Ferni</name></author>	</entry>

	</feed>