Plone configlet mit RichText-Feld
In Plone configlets wird Standardmäßig formlib zur Formularerzeugung verwendet. Dieser Artikel beschreibt die Verwendung von einem RichTextWidget (WYSIWYGWidget) in einem configlet.
Schema definieren
Wir definieren uns zunächst ein schema:
from zope.interface import Interface
from zope import schema
class IDashboardConfig(Interface):
"""Edit Dashboard settings."""
dashboard_prolog = schema.Text(
default = u"",
required = True,
title = _(u"Dashboard prolog text"),
)
Wie man sieht, wird hier ein ganz normales Text-field verwendet.
Das RichText-Widget (WYSIWYGWidget) aktivieren
In der Definition des Formulars, wird nun dem Feld mittels custom_widget Attribut das RichText-widget (WYSIWYGWidget) zugewiesen.
from plone.app.controlpanel.form import ControlPanelForm
from plone.app.form.widgets.wysiwygwidget import WYSIWYGWidget
from interfaces import IDashboardConfig
class DashboardControlPanel(ControlPanelForm):
""" Controlpanel form for dashboard configuration."""
form_fields = form.Fields(IDashboardConfig)
form_fields['dashboard_prolog'].custom_widget = WYSIWYGWidget
description = _(u"Define settings for dashboard.")
form_name = _(u"Dashboard Config Panel")
label = _(u"Dashboard Configuration Panel")