Einbindung von Zope Products dargestellt am Beispiel des 'Formulator'
Autor: Dr. Frank Hoffmann, 26.05.2003
Um Zope-Produkte in ZMS-Dokumente bzw. Content-Hierarchien einzubinden, existieren zwei unterschiedliche Ansätze; man das Standard-Objekt 'Systemfolder' einsetzen oder die Fremdprodukte auf der 'Zope-Ebene' von ZMS platzieren bzw. integrieren.
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":
[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: