Formulator is an extensible framework that eases the creation and validation of web forms
Formulator ist ein beliebtes Zope-Produkt zur Erstellung individueller Nutzereingabe-Formulare; das Produkt erlaubt die einfache Erstellung typischer Umfrage-Element-Sequenzen und ist in der Lage eine Validierung der Eingaben zu übernehmen.
1. Einbindung in einen ZMS-Textabschnitt
In der folgenden Screen-Folge wird gezeigt, wie einfach die Einbindung ins ZMS ist.
Nach der Installation des Produkt ist in der 'Zope-Ebene' die Action-List um das neue Produkt erweitert. Unter ZMS ist die Zope-Ebene erreichbar für den Admin/Manager über den kleinen 'Z'-Button rechts oben bzw. per URL /manage_system; dies lässt sich für jeden Knoten darstellen und somit ist es möglich 'neben' jedem Dokument bzw. Textobjekt - quasi unsichtbar - externe Produkt zu lagern, die sich in den Textstrom durch entsprechende DTML-Aufrufe integrieren lassen. Das Seitenrendering wird vollständig von ZMS übernommen.
[1] Formulator-Objekte werden im ZMS-Redaktionsinterface über ein ZMS-Textelement dargestellt.
[2] Der DTML-Code für die Objekt-Darstellung wird in ein Textabschnitt geschrieben. Beispiel-Code zum squenziellen Rendern aller verfügbaren Childobjekte des Formulator-Objektes "FormulartorForm":
<p>
<dtml-var "FormulatorForm.header()">
<dtml-in "FormulatorForm.get_fields()">
<dtml-let field=sequence-item>
<b><dtml-var title></b><br />
<dtml-var "field.render()">
<br /><br />
</dtml-let>
</dtml-in>
<input type="submit" value="Abschicken" name="form_sent">
<dtml-var "FormulatorForm.footer()">
</p>
[3] Objekt-Ansicht im 'Zope'-Modus von ZMS; diesen erreicht der Admin/Manager über den kleinen Z-Button oben rechts. Hier liegt - parallel zu den ZMS-Objekte - das eingefügte Formulator-Objekt.
[4] Wenn man auf das Formulator-Objekt klickt, landet man in der ganz gwöhnlichen Zope-Darstellung und hat die üblichen, produktspezifischen Menü-Optionen zur Verfügung.
[5] Die Seitendarstellung geschieht über die bestimmenden Master-Templates standard_html_header bzw. standard_html_footer, die hier aus dem ZMS-Kontext stammen und somit automatisch für die lückenlose Integration der Darstellung sorgen.
2. Einbindung über das systemfolder-Objekt
Alternativ lässt sich ein systemfolder-Objekt anlegen, das die eingegliederten Product-Instanzen über einen direkten Zugriff anzeigt - mit den Zope-typischen Menü-Optionen. Hier ist für den darstellenden Seitenaufruf eine gesonderte DTML-Methode erforderlich, die neben dem Rendering der Formulator-Inhalte die beiden Mastertemplates standard_html_header bzw. standard_html_footer zur Ein- bzw. Ausleitung aufruft. Diese Methode weicht also bis auf die Mastertemplates nicht von obigem Code ab:
<dtml-var standard_html_header>
<p>
<dtml-var "FormulatorForm.header()">
<dtml-in "FormulatorForm.get_fields()">
<dtml-let field=sequence-item>
<b><dtml-var title></b><br />
<dtml-var "field.render()">
<br /><br />
</dtml-let>
</dtml-in>
<input type="submit" value="Abschicken" name="form_sent">
<dtml-var "FormulatorForm.footer()">
</p>
<dtml-var standard_html_footer>
Einbindung des Produkts über das Systemfolder-Objekt.
Erstellt von: Dr. Frank Hoffmann
, erstellt am: 27.06.2008
,
zuletzt geändert: 27.06.2008