我正在开发Plone 5.0设置,我想以某种方式修改它,以便想要创建新页面的用户在他们的TinyMCE编辑器中有一个默认文本。
我对Plone很陌生,有点不同语言的数量以及它们如何相互连接。因此,我不想快速而肮脏地处理某些文件,而是希望有一些建议如何正确有效地开始解决问题。
欢迎提出任何建议,如何处理。
答案 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行为可能更好:
my.package.behaviors.richtext.IRichtextWithDefaultValue
。