使用tinymce for dolmen的富文本小部件

dolmen.widget.tinymce的Python项目详细描述


dolmen.widget.tinymce是一个提供 可插入的方式将文本字段呈现为 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小部件的菜单,以便删除无用的 选项。
  • 包现在正在使用^{tt2}中的最新更改$ 核心,例如modemarker,以便获得正常的模式定义。

1.0a1(2010-06-06)

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java访问数据库中的数据。罐子   java Android Studio 2摄像头安全性异常   编译创建。java文件,并将其编译为。运行时的类文件   使用正则表达式的Java单词过滤器?   java如何获取服务器和客户端之间交换的证书详细信息(如果是activemq)   安卓在java代码中使用相对布局   java在代码中设置线性布局权重,而不是xml问题   java在Spring安全认证成功URL上设置自定义响应头   java Selenium+sikuli runnable jar   多线程跟踪Java中的引用   源代码值为1.5的java错误已过时,将在未来的版本中删除   java JPA:PGobject无法强制转换   java如何将eclipse项目的类patth添加到ant脚本中?   java如何提高准确性?基于连续隐马尔可夫模型(Jahmm)的活动识别   java如何在Groovy中调用OpenCSV库CSVReader(Reader in,char x)?   java Bukkit插件消息传递   用于循环如何在两个字符后单独打印   java熟悉Netbeans的人:为什么会发生这种情况?错误不是真正的错误吗?