[1] Formulator objects are displayed in the ZMS editorial interface via a ZMS-text element.
Author: Dr. Frank Hoffmann, 2003/05/26
To integrate Zope products in ZMS documents resp. content hierarchies two different approaches exist; you can use the standard object 'Systemfolder' or locate resp. integrate the foreign products at the 'Zope level' of ZMS.
Formulator is a favoured Zope product for creating individual user input forms; the product allows an easy creation of typical poll element sequences and is able to validate the submissions.
The following screen sequence shows how easy the integration into ZMS is.
After installation of the product the Action-List at the 'Zope-level' is enhanced with the new product. Under ZMS the Zope level is accessible for the Admin/Manager via the little 'Z'-button right on top resp. per URL /manage_system; this can be displayed for each node and so it is possible to store - quasi invisible - external products that can be integrated into the text stream by corresponding DTML calls 'beneath' each document resp. text object. The page rendering is provided completely by ZMS.
[2] The DTML code for the object presentation is written in a text section. Exemplary code for sequential rendering of all available child objects of the formulator object "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] Object view in the 'Zope' mode of ZMS; the Admin/Manager can access this view via the little Z-Button right on top. The inserted formulator object is located here - in parallel to the ZMS objects.
[4] If you click on the formulator object, you will come to the quite common Zope display having available the usual product specific menu options.
[5] The site display happens via the defining master templates standard_html_header resp. standard_html_footer which are here coming out of the ZMS context and provide automatically without a break the integration of the presentation.
Alternatively a systemfolder object can be applied that shows the integrated product instances via direct access - with the Zope-typical menu options. Here a separate DTML method is needed for the site display that calls besides the rendering of the formulator contents the both master templates standard_html_header resp. standard_html_footer for start resp. ending. So this method does not deviate from the code above apart from the master templates:
<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>