使用z3c.form的文本字段CKEditor小部件
项目描述
此包为z3c.form库提供了一个CKEditor小部件。它还提供了一个RichText架构字段,使得CKEditor的使用完全透明。
详细文档
富文本字段和CKEditor小部件
本包提供了一个名为 RichText 的新字段,它是默认的 Text 字段的简单扩展。该 RichText 字段声明它包含HTML标记作为其文本的一部分。
>>> from z3c.formwidget.ckeditor import richtext
那么让我们创建一个富文本字段
>>> text = richtext.RichText(__name__='text')
现在让我们验证该字段是否提供了文本和富文本模式
>>> import zope.schema >>> from zope.interface import verify >>> from z3c.formwidget.ckeditor import interfaces>>> verify.verifyObject(interfaces.IRichText, text) True >>> verify.verifyObject(zope.schema.interfaces.IText, text) True
接下来,提供了一个小部件来编辑富文本字段,它使用CKEditor。
>>> from z3c.formwidget.ckeditor import interfaces, ckeditor
CKEditorWidget 是一个小部件
>>> from z3c.form.interfaces import IWidget>>> verify.verifyClass(interfaces.ICKEditorWidget, ckeditor.CKEditorWidget) True >>> verify.verifyClass(IWidget, ckeditor.CKEditorWidget) True
该小部件可以通过适应请求仅渲染一个输入字段
>>> from z3c.form.testing import TestRequest >>> request = TestRequest() >>> widget = ckeditor.CKEditorWidget(request)
此类小部件提供了 IWidget
>>> IWidget.providedBy(widget) True
让我们添加一些有意义的通用数据
>>> widget.id = 'id' >>> widget.name = 'name'
如果我们渲染小部件,我们会得到HTML
>>> widget.update() >>> print widget.render() <textarea id="id" name="name" class="CKEditorWidget"></textarea> <script type="text/javascript">CKEDITOR.replace('name', {});</script>
如您所见,最初CK Editor是使用所有默认值实例化的。这可以通过修改小部件上的 config 属性来更改。
如果 config 属性是一个字符串,则它被解释为JavaScript变量名。该变量必须事先声明。
>>> widget.config = 'myCKEditorConfig' >>> widget.update() >>> print widget.render() <textarea id="id" name="name" class="CKEditorWidget"></textarea> <script type="text/javascript">CKEDITOR.replace('name', myCKEditorConfig);</script>
或者,config属性可以是一个选项字典,这些选项在渲染时编码为JavaScript
>>> widget.config = {'toolbar': 'Basic', 'uiColor': '#9AB8F3'} >>> widget.update() >>> print widget.render() <textarea id="id" name="name" class="CKEditorWidget"></textarea> <script type="text/javascript">CKEDITOR.replace('name', {"uiColor": "#9AB8F3", "toolbar": "Basic"});</script>
所有其他值都会引发一个 ValueError。
>>> widget.config = 3 >>> widget.update() Traceback (most recent call last): ... ValueError: ('Invalid config object', 3)
当然,富文本字段的字段小部件也是可用的
>>> import zope.component >>> from z3c.form.interfaces import IFieldWidget>>> widget = zope.component.getMultiAdapter((text, request), IFieldWidget) >>> widget <CKEditorWidget 'text'>>>> widget.update() >>> print widget.render() <textarea id="text" name="text" class="CKEditorWidget required richtext-field"></textarea> <script type="text/javascript">CKEDITOR.replace('text', {});</script>
您还可以使用给定的配置动态创建CKEditor字段小部件工厂
>>> MinimalCKEditorWidget = ckeditor.CKEditorFieldWidgetFactory( ... {'toolbar': 'Basic', 'uiColor': '#9AB8F3'})>>> widget = MinimalCKEditorWidget(text, request) >>> widget.update() >>> print widget.render() <textarea id="text" name="text" class="CKEditorWidget required richtext-field"></textarea> <script type="text/javascript">CKEDITOR.replace('text', {"uiColor": "#9AB8F3", "toolbar": "Basic"});</script>
变更
1.1.0 (2011-03-02)
升级CKEditor到3.5.2。
移除了弃用警告。
1.0.0 (2009-11-03)
初始发布
项目详情
关闭
z3c.formwidget.ckeditor-1.1.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 023410fa444af1e0b979eae6c0ee856c5692d2f0e7aa7efde80991fee97a5613 |
|
MD5 | 3ace99355d17cb952a0ddab3c1c90b94 |
|
BLAKE2b-256 | f304a1071b6011c3f2d3686b9dfe72029295863adcb60b800ab1132d7ab5767b |