我正在使用dexterity创建一些自定义内容类型。我想“自定义”在这个领域只允许TinyMce的基本按钮的RichText字段方面。
在原型中,我可以使用
TextField('text',
allowable_content_types=('text/html',),
default_output_type='text/x-html-safe',
required=1,
widget=RichWidget
(label='Content',
allow_buttons=(
'bold',
'italic',
'justifyleft',
'justifyright',
),
),),我该如何使用基于灵巧的内容类型来做到这一点呢?
发布于 2014-11-27 06:51:22
现在似乎没有一个“好”的方法来做到这一点。即使是Plone文档目前也处于亏损状态。http://docs.plone.org/develop/plone/forms/wysiwyg.html#id9
问题出在Products.TinyMCE试图从字段的窗口小部件属性中获取所见即所得配置。
https://github.com/plone/Products.TinyMCE/blob/1.3.6/Products/TinyMCE/utility.py#L711-L713
# Get widget attributes
widget = getattr(field, 'widget', None)
filter_buttons = getattr(widget, 'filter_buttons', None)
allow_buttons = getattr(widget, 'allow_buttons', None)但是,据我所知,我们可以灵活地将字段映射到表单对象上的小部件。
from plone.autoform import directives as form
from plone.app.z3cform.wysiwyg import WysiwygFieldWidget
class IExample(model.schema):
form.widget('body', WysiwygFieldWidget)
body = schema.Text(title=u"Body")因此,我们的body字段没有Products.TinyMCE可以从中提取配置的小部件属性。
无论如何,如果您现在需要它工作,我可以通过执行以下操作来解决它:
在您的ZMI中,定制portal_skins/tinymce/tinymce_wysiwyg_support,将行field field|nothing更改为field field|view/field|nothing。
以模式驱动的方式定义您的内容类型,对于您的WYSIWYG字段执行以下操作:
class mywidg(object):
allow_buttons = ('bold',
'italic',
'justifyright',
'justifyleft',)
class IExample(model.schema):
form.widget('body', WysiwygFieldWidget)
body = schema.Text(title=u"Body")
body.widget = mywidg()https://stackoverflow.com/questions/27110341
复制相似问题