gpt4 book ai didi

plone - 为 Dexterity RichWidget 自定义 TinyMCE

转载 作者:行者123 更新时间:2023-12-01 05:07:50 25 4
gpt4 key购买 nike

我正在使用灵 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com