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.

VERSION

1.083

AUTHOR

Frank Seitz, http://fseitz.de/

COPYRIGHT

Copyright (C) 2016 Frank Seitz

LICENSE

This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.