使用TinyMCE的Dolmen富文本小部件
项目描述
dolmen.widget.tinymce 是一个提供将文本字段作为 WYSIWG 编辑器渲染在 zeam.form 表单中的可使用和可插入方式的软件包。
示例
我们将在下面开发一个小示例,以展示 dolmen.widget.tinymce 的用法。首先,我们需要创建一个包含文本字段的模型内容
>>> import grokcore.component as grok >>> from zope.interface import Interface >>> from zope.schema import Text >>> from zope.schema.fieldproperty import FieldProperty >>> class ICave(Interface): ... paintings = Text(title=u'Description of the cave paintings') >>> class Grotto(grok.Context): ... paintings = FieldProperty(ICave['paintings'])
我们现在有一个定义文本字段的模型。我们想使用一个富编辑器来编辑/查看此内容,允许输入富文本并以有效的HTML显示。为此,我们定义一个表单
>>> from zeam.form.ztk import Form, Fields>>> class EditCave(Form): ... grok.name('edit') ... grok.context(ICave) ... ignoreContent = False ... fields = Fields(ICave)>>> grok.testing.grok_component('edit', EditCave) True
此时,如果我们实例化表单,我们将得到正常的渲染
>>> from zope.publisher.browser import TestRequest >>> homecave = Grotto() >>> request = TestRequest() >>> form = EditCave(homecave, request) >>> form.updateWidgets() >>> print form.fieldWidgets.get('form.field.paintings').render() <textarea id="form-field-paintings" name="form.field.paintings" class="field field-text field-required" cols="80" rows="5"></textarea>
要获取 tinyMCE 小部件,您只需使用字段的“模式”来指示您想要渲染的内容
>>> from dolmen.widget.tinymce import TINYMCE_INPUT >>> form = EditCave(homecave, request) >>> form.fields['paintings'].mode = TINYMCE_INPUT >>> form.updateWidgets() >>> print form.fieldWidgets.get('form.field.paintings').render() <script type="text/javascript"> $(document).ready(function(){ $('textarea[name="form.field.paintings"]').tinymce(); }); </script> <textarea id="form-field-paintings" name="form.field.paintings" class="field field-text field-required" cols="80" rows="5"></textarea>
模式可以是“tinymce.input”用于输入小部件,也可以是“tinymce.display”以将值显示为有效的HTML
>>> from dolmen.widget.tinymce import TINYMCE_DISPLAY >>> homecave.paintings = u"<h1>Very nice paintings</h1><p>Mammoth</p>" >>> form = EditCave(homecave, request) >>> form.fields['paintings'].mode = TINYMCE_DISPLAY >>> form.updateWidgets() >>> print form.fieldWidgets.get('form.field.paintings').render() <div id="form-field-paintings" name="form.field.paintings" class="field"><h1>Very nice paintings</h1><p>Mammoth</p></div>
变更日志
1.0b3 (2011-01-18)
修正了入口点和包含路径。
1.0b2 (2011-01-13)
现在我们使用 fanstatic。
1.0b1 (2010-07-06)
调整了TinyMCE小部件的菜单,以删除无用的选项。
该软件包现在使用 zeam.form 核心的最新更改,例如 ModeMarker,以获取合理的模式定义。
1.0a1 (2010-06-06)
首次发布
项目详情
关闭
dolmen.widget.tinymce-1.0b3.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 207d112bf7a645378fa6401db9e81120ab08306aaebb906bada44edf865247d1 |
|
MD5 | 80ee3648977d80959bf391826eb1e98c |
|
BLAKE2b-256 | 5f98c0db516318c5213145357d0fb13a27cd372480a71bcb0ee2842f64ed83c8 |