Prty::Html::Form::Layout - HTML-Formular mit freiem Layout
Prty::Hash
Die Klasse erzeugt ein HTML-Formular mit einem freiem Layout, d.h. der HTML-Code "um die Widgets herum" wird von der Klasse nicht vorgegeben, sondern per Objektattribut gesetzt, ebenso wie die Liste der Widgets. Die Methode html() der 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. Der Platzhalter wird gebildet, indem der Widget-Name in Großbuchstaben gewandelt und um zwei Unterstriche am Anfang und am Ende ergänzt wird.
Beispiele:
Widget-Name Platzhalter ----------- ----------- vorname __VORNAME__ nachname __NACHNAME__ aktion __AKTION__
Anmerkungen:
Hidden-Widgets oder Widgets, die hidden geschaltet sind, werden nicht in das Layout eingesetzt, sondern als Hidden-Inputs (<input type="hidden" ...>) dem Layout-HTML vorangestellt.
<input type="hidden" ...>
<!--optional ...--> Meta-Tags werden nach dem Einsetzen der Widgets in das Layout aufgelöst.
<!--optional ...-->
Eigenschaften des form-Tag. Ist das Attribut nicht gesetzt, wird kein form-Tag erzeugt.
form
Schlüssel/Wert-Paare, die als Hidden-Widgets gesetzt werden.
Der HTML-Code des Layouts. In das Layout wird der HTML-Code der Widgets eingesetzt.
Liste der Widgets, die in das Layout eingesetzt werden.
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::Hidden->new( name=>'id', value=>'4711', ), Prty::Html::Widget::TextField->new( name=>'vorname', value=>'Lieschen', ), Prty::Html::Widget::TextField->new( name=>'nachname', value=>'Müller', ), Prty::Html::Widget::Button->new( id=>'speichern', name=>'aktion', value=>'speichern', content=>'Speichern', ), ], );
erzeugt
<input type="hidden" name="id" value="4711"> <table class="form" cellspacing="0"> <tr> <td>Vorname:</td> <td><input type="text" name="vorname" value="Lieschen" /></td> </tr> <tr> <td>Nachname:</td> <td><input type="text" name="nachname" value="Müller" /></td> </tr> <tr> <td></td> <td><button id="speichern" name="aktion" type="button" value="speichern">Speichern</button></td> </tr> </table>
Das tabellarische Layout wird hier von einer anderen Klasse (Prty::Html::Table::Simple) geliefert, die die Tabelle erzeugt.
$e = $class->new(@keyVal);
Instantiiere ein Formular-Objekt mit den Eigenschaften @keyVal und liefere eine Referenz auf dieses Objekt zurück.
$html = $e->html($h); $html = $class->html($h,@keyVal);
Generiere den HTML-Code des Formular-Objekts und liefere diesen zurück. Als Klassenmethode gerufen, wird das Objekt intern erzeugt und mit den Attributen @keyVal instantiiert.
1.093
Frank Seitz, http://fseitz.de/
Copyright (C) 2016 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Prty, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Prty
CPAN shell
perl -MCPAN -e shell install Prty
For more information on module installation, please visit the detailed CPAN module installation guide.