Directives ermöglichen die Konfiguration der Formulare aus den Schemata.
Dexterity verwendet plone.autoform um die auf z3c.form basierenden Hinzufügen- und Bearbeiten-Formulare zu konfigurieren. Somit lassen sich Schema mit Anmerkungen versehen, die das Formular konfigurieren.
Diese Anmerkungen können einfach mit Direktiven aus plone.directives.form und plone.directives.dexterity einem mit plone.directives.form.Schema
erstellten Schema hinzugefügt werden.
Ein einfaches Beispiel kann so aussehen:
from zope import interface, schema
from plone.directives import form
…
class IExcludeFromNavigation(form.Schema):
"""Interface to exclude items from navigation.
"""
form.fieldset('settings', label=u"Settings",
fields=['exclude_from_nav'])
exclude_from_nav = schema.Bool(
title=_(u'label_exclude_from_nav', default=u'Exclude from navigation'),
description=_(u'help_exclude_from_nav', default=u'If selected, this item will not appear in the navigation tree'),
default=False
)
form.omitted('exclude_from_nav')
Im folgenden eine Übersicht über alle Form-Directives aus plone.directives.form:
Name |
Beschreibung |
---|---|
|
Spezifiziert ein alternatives Widget für ein Feld. Dabei wird der Feldname als Key und der Widget-Name als Value angegeben. Das Widget kann entweder eine Instanz aus z3c.form.widget sein oder ein Dotted Name eines Widgets. |
|
Spart ein oder mehrere Felder aus einem Formular aus. Als Parameter kann eine Sequenz der Feldnamen angegeben werden. |
|
Folgende Modi sind möglich: |
|
Spezifiziert, dass das betreffende Feld vor einem anderen
gerendert werden soll. Ist das Feld in einem zusätzlichen
Schema definiert (z.B. in einem Behavior), ist der Name z.B.
|
|
Spezifiziert, dass das betreffende Feld nach einem anderen
gerendert werden soll. Ist das Feld in einem zusätzlichen
Schema definiert (z.B. in einem Behavior), ist der Name z.B.
|
|
Markiert ein bestimmtes Feld als Primary Field in einem Schema. Dies wird beim Zugriff per WebDAV für das Marshalling des Objekts verwendet. |
|
Erstellt ein Fieldset, das in Plone als Reiter im Bearbeiten- Formular angezeigt wird. |
Im folgenden die Security-Directives aus plone.directives.dexterity
:
Name |
Beschreibung |
---|---|
|
Setzt die Zope3-Permission, die zum Lesen des Feldwerts erforderlich ist. Dabei wird der Feldname als Schlüssel und die Berechtigung als Wert angegeben. |
|
Setzt die Zope3-Permission, die zum Schreiben des Feldwerts erforderlich ist. Dabei wird der Feldname als Schlüssel und die Berechtigung als Wert angegeben. |