跳转到主要内容

使用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 (5.5 kB 查看哈希值)

上传时间

由以下组织支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面