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)

  • 初始版本

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

推荐PyPI第三方库


热门话题
安卓中的java标签长点击问题   JavaSpringMVC多行表单提交提交新的ModelAttribute   程序来查找java程序中的方法数   在JSF中自动选择java下拉列表   java onNext为ArrayList的每个元素触发,而不是使用RXJava触发一次   为什么java不允许创建内部类的实例?   JavaJSF<p:calendar>小部件在选择不同月份时不会刷新   java如何限制JFileChooser只允许选择特定数量的文件?   java ANT build无法识别geckodriver可执行文件“驱动程序可执行文件不存在”   java TextView空指针异常   java试图在安卓中传递参数   如何将XML配置转换为Java   java支持使用JAXRPC的soap服务,但pom中没有定义它。xml   在Java中检查整个ArrayList