Frank Seitz
and 1 contributors

NAME

Prty::Html::Form::Layout - HTML-Formular mit freiem Layout

BASE CLASS

Prty::Hash

DESCRIPTION

Die Klasse dient der Erzeugung von HTML-Formularen mit freiem Layout. D.h. der HTML-Code "um die Widgets herum" wird von der Klasse nicht vorgegeben, sondern als Objektattribut gesetzt, ebenso wie die Liste der Widgets. Die Klasse setzt die Widgets in das Layout ein.

Für jedes Widget enthält das Layout einen Platzhalter, der sich aus dem Namen des Widget herleitet, indem der Widget-Name in Großbuchstaben gewandelt und um zwei Unterstriche vorne und hinten ergänzt wird.

Beispiel:

    Widget-Name  Platzhalter
    -----------  -----------
    vorname      __VORNAME__

ATTRIBUTES

form => \@keyVal (Default: undef)

Eigenschaften des form-Tag. Ist das Attribut nicht gesetzt, wird kein form-Tag erzeugt.

layout => $html (Default: '')

Der HTML-Code des Layouts. In das Layout wird der HTML-Code der Widgets eingesetzt.

widgets => \@widgets (Default: [])

Liste der Widgets, die in das Layout eingesetzt werden.

EXAMPLE

Der Code

    Prty::Html::Form::Layout->html($h,
        layout=>Prty::Html::Table::Simple->html($h,
            class=>'form',
            rows=>[
                [['Vorname:'],['__VORNAME__']],
                [['Nachname:'],['__NACHNAME__']],
                [[''],['__AKTION__']],
            ],
        ),
        widgets=>[
            Prty::Html::Widget::TextField->new(
                name=>'vorname',
                value=>'Linus',
            ),
            Prty::Html::Widget::TextField->new(
                name=>'nachname',
                value=>'Seitz',
            ),
            Prty::Html::Widget::Button->new(
                id=>'speichern',
                name=>'aktion',
                value=>'speichern',
                content=>'Speichern',
            ),
        ],
    );

erzeugt

    <table class="form" cellspacing="0">
    <tbody>
      <tr>
        <td>Vorname:</td>
        <td><input type="text" name="vorname" value="Linus" /></td>
      </tr>
      <tr>
        <td>Nachname:</td>
        <td><input type="text" name="nachname" value="Seitz" /></td>
      </tr>
      <tr>
        <td></td>
        <td><button id="speichern" name="aktion" type="button"
          value="speichern">Speichern</button></td>
      </tr>
    </tbody>
    </table>

METHODS

Konstruktor

new() - Instanziiere Objekt

Synopsis

    $e = $class->new(@attVal);

Description

Instanziiere ein Formular-Objekt und liefere eine Referenz auf dieses Objekt zurück.

Objektmethoden

html() - Generiere HTML

Synopsis

    $html = $e->html($h);
    $html = $class->html($h,@attVal);

Description

Generiere den HTML-Code des Formular-Objekts und liefere diesen zurück. Als Klassenmethode gerufen, wird das Objekt intern erzeugt und mit den Attributen @attVal instanziiert.

AUTHOR

Frank Seitz, http://fseitz.de/