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