plone - 为 Dexterity RichWidget 自定义 TinyMCE

标签 plone dexterity

我正在使用灵 active 创建一些自定义内容类型。我想“自定义”富文本字段的方面,只允许在该字段上使用 TinyMce 的基本按钮。

在我可以使用的原型(prototype)中

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',
    ),
),),

我将如何使用基于敏捷的内容类型来做到这一点?

最佳答案

现在似乎没有一种“好”的方式来做到这一点。即使是 Plone 文档目前也不知所措。 http://docs.plone.org/develop/plone/forms/wysiwyg.html#id9

问题在于 Products.TinyMCE 试图从 Field 的小部件属性中获取 WYSIWYG 配置。

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)

但是,据我了解,使用 Dexterity,我们将字段映射到表单对象上的小部件。
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|nothingfield field|view/field|nothing .

以模式驱动的方式定义您的内容类型,并为您的所见即所得字段执行以下操作:
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()

关于plone - 为 Dexterity RichWidget 自定义 TinyMCE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27110341/

相关文章:

python - 如何在 Plone 5 中移动搜索栏

forms - 如何根据父级设置plone dexterity addform中bool类型的默认值

plone - 链接到 "File type"灵巧内容类型

Plone/dexterity - 在事件中,如何更改只有所有者拥有查看权限的内容类型对象的所有权角色?

飞行和灵巧 : default values for "relation" field

python - 覆盖敏捷类型中的标题值

cron - Plone 4 中最好的任务调度方法是什么?

plone - 是否可以在文件夹内容 View 上启用删除确认?

docker - Docker上的Plone总是从头开始

plone - 警告 : exceptions. key 错误 : u'Undefined namespace prefix: i18. '