z3c.form的其他小部件
zw.widget的Python项目详细描述
zaehlwerk小部件
一些z3c.form框架的小部件。
- 颜色小部件
- 电子邮件小部件
- 行小部件
- tinymce小部件
彩色窗口小部件
小部件可以使用颜色预览呈现输入字段:
>>> from zope.interface.verify import verifyClass >>> from z3c.form.interfaces import IWidget >>> from zw.widget.color.widget import ColorWidget
colorWidget是一个小部件:
>>> verifyClass(IWidget, ColorWidget) True
小部件只能通过调整请求来呈现输入字段:
>>> from z3c.form.testing import TestRequest >>> request = TestRequest() >>> widget = ColorWidget(request)
这样的字段提供iWidget:
>>> IWidget.providedBy(widget) True
我们还需要至少为小部件和 请求:
>>> import os.path >>> import zope.interface >>> from zope.publisher.interfaces.browser import IDefaultBrowserLayer >>> from zope.pagetemplate.interfaces import IPageTemplate >>> import zw.widget.color >>> import z3c.form.widget >>> template = os.path.join(os.path.dirname(zw.widget.color.__file__), ... 'color_input.pt') >>> factory = z3c.form.widget.WidgetTemplateFactory(template) >>> zope.component.provideAdapter(factory, ... (zope.interface.Interface, IDefaultBrowserLayer, None, None, None), ... IPageTemplate, name='input')
如果我们呈现小部件,我们会得到html:
>>> print widget.render() <input type="text" class="color-widget" value="" />
向小部件添加更多属性将使其显示更多:
>>> widget.id = 'id' >>> widget.name = 'name' >>> widget.value = u'value' >>> print widget.render() <span id="" class="color-widget color-sample" style="background-color: #value;"> </span> <input type="text" id="id" name="name" class="color-widget" value="value" />
电子邮件小部件
小部件可以呈现一个普通的输入字段:
>>> from zope.interface.verify import verifyClass >>> from z3c.form.interfaces import IWidget, INPUT_MODE, DISPLAY_MODE >>> from zw.widget.email.widget import EmailWidget
电子邮件小部件是一个小部件:
>>> verifyClass(IWidget, EmailWidget) True
小部件只能通过调整请求来呈现输入字段:
>>> from z3c.form.testing import TestRequest >>> request = TestRequest() >>> widget = EmailWidget(request)
这样的字段提供iWidget:
>>> IWidget.providedBy(widget) True
我们还需要至少为小部件和 请求:
>>> import os.path >>> import zope.interface >>> from zope.publisher.interfaces.browser import IDefaultBrowserLayer >>> from zope.pagetemplate.interfaces import IPageTemplate >>> import zw.widget.email >>> import z3c.form.widget >>> template = os.path.join(os.path.dirname(zw.widget.email.__file__), ... 'email_input.pt') >>> factory = z3c.form.widget.WidgetTemplateFactory(template) >>> zope.component.provideAdapter(factory, ... (zope.interface.Interface, IDefaultBrowserLayer, None, None, None), ... IPageTemplate, name='input')
如果我们呈现小部件,我们会得到html:
>>> print widget.render() <input type="text" class="email-widget" value="" />
向小部件添加更多属性将使其显示更多:
>>> widget.id = 'id' >>> widget.name = 'name' >>> widget.value = u'name@domain.tld' >>> print widget.render() <input type="text" id="id" name="name" class="email-widget" value="name@domain.tld" />
更有趣的是显示视图:
>>> widget.mode = DISPLAY_MODE >>> template = os.path.join(os.path.dirname(zw.widget.email.__file__), ... 'email_display.pt') >>> factory = z3c.form.widget.WidgetTemplateFactory(template) >>> zope.component.provideAdapter(factory, ... (zope.interface.Interface, IDefaultBrowserLayer, None, None, None), ... IPageTemplate, name='display') >>> print widget.render() <span id="id" class="email-widget"> <a href="mailto:name@domain.tld"> name@domain.tld </a> </span>
但如果我们没有被认证,它应该被隐藏:
>>> widget.obscured = True >>> print widget.render() <span id="id" class="email-widget"> name@domain.tld </span>
线路开关
小部件可以呈现一个html文本输入字段,它收集列表 逐行列出。
>>> from zope.interface.verify import verifyClass >>> from z3c.form.interfaces import IWidget >>> from zw.widget.lines.widget import LinesWidget
LinesWidget是一个小部件:
>>> verifyClass(IWidget, LinesWidget) True
小部件只能通过调整请求来呈现文本区域字段:
>>> from z3c.form.testing import TestRequest >>> request = TestRequest() >>> widget = LinesWidget(request)
这样的字段提供iWidget:
>>> IWidget.providedBy(widget) True
我们还需要至少为小部件和 请求:
>>> import os.path >>> import zope.interface >>> from zope.publisher.interfaces.browser import IDefaultBrowserLayer >>> from zope.pagetemplate.interfaces import IPageTemplate >>> import zw.widget.lines >>> import z3c.form.widget >>> template = os.path.join(os.path.dirname(zw.widget.lines.__file__), ... 'lines_input.pt') >>> factory = z3c.form.widget.WidgetTemplateFactory(template) >>> zope.component.provideAdapter(factory, ... (zope.interface.Interface, IDefaultBrowserLayer, None, None, None), ... IPageTemplate, name='input')
如果我们呈现小部件,我们会得到html:
>>> print widget.render() <textarea class="lines-widget"></textarea>
向小部件添加更多属性将使其显示更多:
>>> widget.id = 'id' >>> widget.name = 'name' >>> widget.value = u'value'>>> print widget.render() <textarea id="id" name="name" class="lines-widget">value</textarea>
tinywidget
小部件可以基于tinymce呈现html文本输入字段。 来自MOXICODE系统
的JavaScript内容编辑器>>> from zope.interface.verify import verifyClass >>> from zope.app.form.interfaces import IInputWidget >>> from z3c.form.interfaces import IWidget >>> from zw.widget.tiny.widget import TinyWidget
TinyWidget是一个小部件:
>>> verifyClass(IWidget, TinyWidget) True
小部件只能通过调整请求来呈现文本区域字段:
>>> from z3c.form.testing import TestRequest >>> request = TestRequest() >>> widget = TinyWidget(request)
这样的字段提供iWidget:
>>> IWidget.providedBy(widget) True
我们还需要至少为小部件和 请求:
>>> import os.path >>> import zope.interface >>> from zope.publisher.interfaces.browser import IDefaultBrowserLayer >>> from zope.pagetemplate.interfaces import IPageTemplate >>> import zw.widget.tiny >>> import z3c.form.widget >>> template = os.path.join(os.path.dirname(zw.widget.tiny.__file__), ... 'tiny_input.pt') >>> factory = z3c.form.widget.WidgetTemplateFactory(template) >>> zope.component.provideAdapter(factory, ... (zope.interface.Interface, IDefaultBrowserLayer, None, None, None), ... IPageTemplate, name='input')
如果我们呈现小部件,我们会得到html:
>>> print widget.render() <textarea class="tiny-widget" cols="60" rows="10"></textarea>
向小部件添加更多属性将使其显示更多:
>>> widget.id = 'id' >>> widget.name = 'name' >>> widget.value = u'value'>>> print widget.render() <textarea id="id" name="name" class="tiny-widget" cols="60" rows="10">value</textarea>
TOdo:测试ECMAscript代码…
更改
版本0.1.6.2(2009-01-09)
- 线路:转换器只能在线路开关上工作
版本0.1.6.1(2008-12-28)
- setup.py中的打包问题
版本0.1.6(2008-12-28)
- tinymce更新(3.2.1.1)
- tinymce不包含在源代码中,但已下载。
- z3c.autoinclude依赖项已删除
版本0.1.5(2008-11-18)
- tinymce更新(3.2.1)
版本0.1.4(2008-06-08)
- tinymce更新(3.0.9)
版本0.1.3(2008-06-08)
- 为基于壁虎的浏览器修复tinymce错误
版本0.1.2(2008-04-13)
- 添加了z3c.schema.email的电子邮件小部件。
版本0.1(2008-02-17)
- 初始版本