在Plone 5.0中为tinyMCE添加默认内容

时间:2016-07-04 08:11:18

标签: tinymce plone

我正在开发Plone 5.0设置,我想以某种方式修改它,以便想要创建新页面的用户在他们的TinyMCE编辑器中有一个默认文本。

我对Plone很陌生,有点不同语言的数量以及它们如何相互连接。因此,我不想快速而肮脏地处理某些文件,而是希望有一些建议如何正确有效地开始解决问题。

欢迎提出任何建议,如何处理。

1 个答案:

答案 0 :(得分:4)

前端(在本例中为TinyMCE)不对默认值负责,它是下面的表格。

Plone 5使用具有z3c形式的敏捷类型。

编辑:这就是你这样做的老派方式 - 我的意思是plone指令方式 - Sry误导你。我仍然使用plone.directives,它支持这种默认值适配器。

plone.app.contenttypes的默认内容类型Document正在使用plone.supermodel。这有一个不同的概念。

如果您仍然愿意创建自己的Richtext行为,则可以按照这些说明进行操作:http://docs.plone.org/external/plone.app.dexterity/docs/advanced/defaults.html

在你的情况下:

def richtext_default_value(**kwargs):
    return RichTextValue('<p>Some text</p>')


@provider(IFormFieldProvider)
class IRichText(model.Schema):

    text = RichTextField(
        title=_(u'Text'),
        description=u"",
        required=False,
        defaultFactory=richtext_default_value,
    )
    model.primary('text')

您可以在文本字段中添加defaultFactory

如果你破坏了鸡蛋上的那些线条,它就会起作用。

以下是有关以编程方式设置默认值的一些信息:

所以在你的情况下,这可能看起来像这样:

from plone.directives.form import default_value
from plone.app.contenttypes.behaviors.richtext import IRichText
from plone.app.textfield.value import RichTextValue

@default_value(field = IRichText['text'])
def richtext_default_value(data):
    return RichTextValue('<p>Some text</p>')

您可以将context参数的default_value装饰器扩展为更具体:@default_value(field = IRichText['text'], context=my.package.content.interfaces.IMyType)

但是因为我们有行为的概念,所以用默认值实现你自己的Richtext行为可能更好:

  1. 创建行为 - &gt; http://docs.plone.org/external/plone.app.dexterity/docs/behaviors/creating-and-registering-behaviors.html并将plone默认的richtext行为作为您自己的模板 - &gt; https://github.com/plone/plone.app.contenttypes/blob/1.2.16/plone/app/contenttypes/behaviors/richtext.py
  2. 通过ZMI(portal_types - &gt;文档)从您的内容类型(文档)中删除'plone.app.contenttypes.behaviors.richtext.IRichText`行为
  3. 添加您自己的Richtext行为,这可能类似于my.package.behaviors.richtext.IRichtextWithDefaultValue