Klasse Formular: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(helpmessage)
(Interaktion mit Erweiterungen)
Zeile 1: Zeile 1:
 
[[Category:Module]]
 
[[Category:Module]]
 
{{stub}}
 
{{stub}}
 +
 +
 +
= Funktionsweise und Methoden =
 +
 +
Die Klasse ''Formular'' erstellt Formulare aus DCA-Arrays:
 +
 +
<source lang="php">
 +
// Die DCA-Definition
 +
$dca = array
 +
(
 +
        'Kontaktdaten' => array
 +
        (
 +
                'label'        => 'Ihre Kontaktdaten',
 +
                'inputType'    => 'headline'
 +
        ),
 +
        'vorname' => array
 +
        (
 +
                'label'        => 'Vorname',
 +
                'inputType'    => 'text',
 +
                'default'      => 'vorname',
 +
                'eval'          => array('mandatory'=>true,'helpmessage'=>'Ihr Vorname')
 +
        ),
 +
        'nachname' => array
 +
        (
 +
                'label'        => 'Nachname',
 +
                'inputType'    => 'text',
 +
                'default'      => 'nachname',
 +
                'eval'          => array('mandatory'=>true,'helpmessage'=>'Ihr Nachname')     
 +
        ),
 +
        'datum' => array
 +
        (
 +
                'label'        => 'Datum',
 +
                'inputType'    => 'text',
 +
                'default'      => date('d.m.Y'),
 +
                'eval'          => array('datepicker'=>$this->getDatePickerString(),'cleardefault'=>false)     
 +
        ),
 +
 +
        'email' => array
 +
        (
 +
                'label'        => 'E-Mail',
 +
                'inputType'    => 'text',
 +
                'eval'          => array('mandatory'=>true,'rgxp'=>'email')           
 +
        ),
 +
        'telefon' => array
 +
        (
 +
                'label'        => 'Telefon',
 +
                'inputType'    => 'text',
 +
                'eval'          => array('mandatory'=>true)           
 +
        ),
 +
        'bemerkung' => array
 +
        (
 +
                'label'        => 'Bemerkung',
 +
                'inputType'    => 'textarea',
 +
                'eval'          => array('rte'=>'tinyMCE')
 +
        ),
 +
        'submit' => array
 +
        (
 +
                'label'        => 'speichern',
 +
                'inputType'    => 'submit'
 +
        )
 +
);
 +
 +
// Instantiirung mit der FormularID meinKontaktformular
 +
$frm = new Formular('meinKontaktformular');
 +
 +
// Übergabe des DCA-Arrays
 +
$frm->setDCA($dca);   
 +
 +
// Konfiguration
 +
$frm->setConfig('generateFormat','<div>%label %field %error </div>');
 +
$frm->setConfig('attributes',array('tableless'=>true));
 +
 +
// Formular wurde abgeschickt und ist korrekt
 +
if($frm->isSubmitted() && $frm->validate())
 +
{
 +
        var_dump($frm->getData());
 +
}
 +
 +
// Ausgabe des Formulars
 +
echo $frm->parse();
 +
</source>
 +
 +
 +
=Konfiguration=
  
  

Version vom 22. November 2010, 20:45 Uhr


MsgError.png Unvollständiger Artikel: dieser Artikel ist noch nicht sauber bearbeitet.

Bitte erweitere ihn und entferne erst anschliessend diesen Hinweis.


Funktionsweise und Methoden

Die Klasse Formular erstellt Formulare aus DCA-Arrays:

// Die DCA-Definition
$dca = array
(
        'Kontaktdaten' => array
        (
                'label'         => 'Ihre Kontaktdaten',
                'inputType'     => 'headline'
        ),
        'vorname' => array
        (
                'label'         => 'Vorname',
                'inputType'     => 'text',
                'default'       => 'vorname',
                'eval'          => array('mandatory'=>true,'helpmessage'=>'Ihr Vorname')
        ),
        'nachname' => array
        (
                'label'         => 'Nachname',
                'inputType'     => 'text',
                'default'       => 'nachname',
                'eval'          => array('mandatory'=>true,'helpmessage'=>'Ihr Nachname')       
        ),
        'datum' => array
        (
                'label'         => 'Datum',
                'inputType'     => 'text',
                'default'       => date('d.m.Y'),
                'eval'          => array('datepicker'=>$this->getDatePickerString(),'cleardefault'=>false)      
        ),
 
        'email' => array
        (
                'label'         => 'E-Mail',
                'inputType'     => 'text',
                'eval'          => array('mandatory'=>true,'rgxp'=>'email')             
        ),
        'telefon' => array
        (
                'label'         => 'Telefon',
                'inputType'     => 'text',
                'eval'          => array('mandatory'=>true)             
        ),
        'bemerkung' => array
        (
                'label'         => 'Bemerkung',
                'inputType'     => 'textarea',
                'eval'          => array('rte'=>'tinyMCE')
        ),
        'submit' => array
        (
                'label'         => 'speichern',
                'inputType'     => 'submit'
        )
);
 
// Instantiirung mit der FormularID meinKontaktformular
$frm = new Formular('meinKontaktformular');
 
// Übergabe des DCA-Arrays
$frm->setDCA($dca);     
 
// Konfiguration
$frm->setConfig('generateFormat','<div>%label %field %error </div>');
$frm->setConfig('attributes',array('tableless'=>true));
 
// Formular wurde abgeschickt und ist korrekt
if($frm->isSubmitted() && $frm->validate())
{
        var_dump($frm->getData());
}
 
// Ausgabe des Formulars
echo $frm->parse();


Konfiguration

Interaktion mit Erweiterungen

cleardefault

Cleardefault löscht den Standardwert sobald das Textfeld den Fokus bekommt. Ist die Erweiterung installiert werden alle Textfelder und Textareas mit diesem Verhalten versehen. Über das @eval@ Array kann es für ein einzelnes Feld angepasst werden:

$dca = array(
    'datum' => array
    (
        'label'      => 'Datum',
        'inputType'  => 'text',
        'default'    => date('d.m.Y'),
        'eval'       => array('cleardefault'=>false)      
    )
);

'cleardefault'=>false deaktiviert das Löschen des Standardwertes für das Feld datum.

helpmessage

Helpmessage blendet per Javascript Hilfsnachrichten für das Feld ein. 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.

$dca = array(
    'datum' => array
    (
        'label'      => 'Datum',
        'inputType'  => 'text',
        'default'    => date('d.m.Y'),
        'eval'       => array('helpmessage'=>'Das Datum muss im Format DD.MM.YYYY sein')
    )
);


formcheck

Formcheck validiert ein Formular per Javascript auf der Clientseite. Falls die Erweiterung (ab Version 1.3!) installiert ist funktionierte diese ohne weitere Konfiguration.

Ansichten
Meine Werkzeuge

Contao Community Documentation

ich hook' mich gleich in die Abstraktion

Martin Mildner
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge