跳转到主要内容

一些用于Zope/Plone HTML表单开发的ZPT宏

项目描述

这不是你正在寻找的表单库

95%的情况下你不需要这个包:尝试一些真实的Plone表单库,比如

继续前进… 继续前进…

你的思想力量对我无效,孩子

如果你想真正了解这是怎么回事,请继续阅读。

介绍

这不是一个Plone表单库,它只是一组你可以使用的 ZPT宏,用于以旧方式创建HTML表单,同时保持Plone布局。因此,此产品不会处理提交表单时应该做什么,它只专注于渲染一些高级字段。

好事是你可以使用这些宏与旧方式TTW方法。

字段参考

每个字段都有一些你可以/必须配置的自定义选项,但其中一些是全局的

fieldName(必需)

字段的名称,即在发送表单时将从请求中读取的名称

fieldLabel

字段的标签

fieldHelp

字段的附加说明

required

显示字段的所需UI信息。 请注意 这只是一个视觉效果,你负责真正处理需求。

cssFieldAdditionalClasses

附加到包含整个字段的div上的CSS类

行字段

此字段可用于为提交的表单提供元素列表(字符串)。元素从文本输入中逐个加载。

Lines field

字段名称将组成“fieldName:list”,因此您可以直接从请求中读取元素列表。

附加参数
fieldType(默认为“text”)

用于填充列表的HTML输入字段的类型。您可以将其更改为HTML 5新元素类型以使用一些浏览器原生功能。

pattern

HTML 5模式属性,用于字段验证。此正则表达式用于在将其添加到列表之前验证字段值。

elements

要用于填充列表的现有元素。提供一系列包含“title”和“value”对的字典。

如何使用

调用宏

<tal:field define="fieldName string:test_lines_field;
                   fieldLabel string:Testing lines field;
                   fieldHelp string:Write something, then add it;
                   ">
    <metal:field-content use-macro="context/@@rt.zptformfield.lines/field" />
</tal:field>

您需要在最终HTML中包含JavaScript。

<metal:head fill-slot="javascript_head_slot">
    <metal:field-content use-macro="context/@@rt.zptformfield.lines/javascript_helpers" />
</metal:head>

自动完成行字段

此字段可用于为提交的表单提供元素列表(字符串)。元素通过jQueryUI Autocomplete获得的自动完成功能选择;在Plone中,通过安装collective.js.jqueryui可以获得此功能的最佳方式。

Autocomplete lines field

字段名称将组成“fieldName:list”,因此您可以直接从请求中读取元素列表。

附加参数
source(必填)

jQueryUI将调用以获取可选择元素的URL。此调用必须返回一个有效的包含“value”和“label”元素的JSON序列。

elements

要用于填充列表的现有元素。提供一系列包含“title”和“value”对的字典。

如何使用

调用宏

<tal:field define="fieldName string:test_lines_field;
                   source string:${portal_url}/@@rt.zptformfield.test.vocab;
                   fieldLabel string:Testing autocomplete field;
                   fieldHelp string:Write something and test the autocomplete feature;
                   ">
    <metal:field-content use-macro="context/@@rt.zptformfield.autocomplete_lines/field" />
</tal:field>

您需要在最终HTML中包含JavaScript。

<metal:head fill-slot="javascript_head_slot">
    <metal:field-content use-macro="context/@@rt.zptformfield.autocomplete_lines/javascript_helpers" />
</metal:head>

TinyMCE字段

此字段渲染textarea并触发字段上的默认Plone WYSIWYG编辑器(使用Products.TinyMCE功能,版本1.3或更高)。

TinyMCE field
附加参数
rows

textarea的行数

cols

textarea的列数

configuration_method

用于获取TinyMCE配置的视图。不要用于加载默认配置

configuration_json

直接提供JSON配置。不要用于从“configuration_method”加载

value

字段中的默认文本

如何使用

调用宏

<tal:field define="fieldName string:test_lines_field;
                   fieldLabel string:Testing TinyMCE field;
                   fieldHelp string:You can use the WYSIWYG editor below;
                   rows python:15;
                   value string:The cat is on the table;
                   ">
    <metal:field-content use-macro="context/@@rt.zptformfield.tinymce/field" />
</tal:field>

引用字段

此字段使用本机archetypes.referencebrowserwidget机制渲染网站内容的选取。唯一的问题是,AJAX调用必须在一个提供(非多值)已知名称(即使隐藏且从未使用)的引用字段的真实Archetypes内容上进行。

Reference field

提交的数据将是所选文档的uuid。

附加参数
startup_directory

开始浏览网站的目录。默认为当前上下文。

context_helper

调用refbrowserhelper视图的上下文。默认为当前上下文。

fake_field_name(必填)

此字段名称在表单中不会使用,但必须是“context_helper”定义的上下文中的一个现有Archetypes引用字段名称。

search_index

用于覆盖搜索框的TextIndex。默认为Plone默认的“SearchableText”。

如何使用

调用宏

<tal:field define="fieldName string:test_reference_field;
                   fake_field_name string:foo_field;
                   fieldLabel string:Testing reference browser field;
                   fieldHelp string:Use the Plone reference browser feature.
                   ">
    <metal:field-content use-macro="context/@@rt.zptformfield.reference/field" />
</tal:field>

在上面的示例中,我们没有提供context_helper参数,因此它必须在表现“foo_field”单值引用字段的Plone内容上调用。

您需要在最终HTML中包含JavaScript。

<metal:head fill-slot="javascript_head_slot">
    <metal:field-content use-macro="context/@@rt.zptformfield.reference/javascript_helpers" />
</metal:head>

多值引用字段

这与上面的引用字段相同,但您将能够从显示的覆盖中选择多个元素。

Reference field

提交的数据将是所选文档的uuid列表。

附加参数

参见“引用字段”

如何使用

调用宏

<tal:field define="fieldName string:test_multivalued_reference_field;
                   fake_field_name string:relatedItems;
                   fieldLabel string:Testing multivalued reference browser field;
                   fieldHelp string:Use the Plone reference browser feature.
                   ">
    <metal:field-content use-macro="context/@@rt.zptformfield.multivalued_reference/field" />
</tal:field>

在上面的示例中,我们没有提供context_helper参数,因此它必须在表现“relatedItems”多值引用字段(默认:所有内容类型)的Plone内容上调用。

您需要在最终HTML中包含JavaScript。

<metal:head fill-slot="javascript_head_slot">
    <metal:field-content use-macro="context/@@rt.zptformfield.multivalued_reference/javascript_helpers" />
</metal:head>

日历字段

此字段可用于使用Plone默认日历提交日期(或日期时间)。可以通过一组HTML选择元素或弹出日历小部件来填写日期。

Calendar field

此字段基于Plone内部日历支持(JavaScript和ZPT宏),因此您不能在Plone之外使用它。

附加参数
value

要显示的日期(一个Zope DateTime对象)。默认情况下将不显示任何日期。

show_hm

显示小时/分钟小部件元素的布尔值。默认情况下将显示它们。

show_ymd

显示日期小部件元素的布尔值。默认情况下将显示它们。

starting_year

定义年份组合框中第一个年份的整数值。

ending_year

定义年份组合框中最后一个年份的整数值。

future_years

定义在日历小部件中显示多少年(从当前日期起)。如果提供了ending_year,则将被忽略。

minute_step

如果显示分钟组合框,则定义分钟值之间的间隔。Plone默认值为5。

calendar_lang

日历弹出UI的语言。由于一个老的和永远不会修复的Plone错误,默认设置为英语,而不是当前语言。自行承担风险。此外:请注意,此参数是针对javascript_helpers宏(请参见下面的示例)。

如何使用

调用宏

<tal:field define="fieldName string:test_calendar_field;
                   fieldLabel string:Testing Calendar field;
                   fieldHelp string:The standard Plone calendar;">
    <metal:field-content use-macro="context/@@rt.zptformfield.calendar/field" />
</tal:field>

您需要在最终的HTML中包含JavaScript。关于使用calendar_lang参数的另一个警告:它是存在错误的。

<metal:head fill-slot="javascript_head_slot" tal:define="calendar_lang context/@@plone_portal_state/language;">
    <metal:field-content use-macro="context/@@rt.zptformfield.calendar/javascript_helpers" />
</metal:head>

最后,日历弹出需要一些CSS样式。

<metal:head fill-slot="style_slot">
    <link rel="stylesheet" type="text/css" href="jscalendar/calendar-system.css"
          tal:attributes="href string:$portal_url/jscalendar/calendar-system.css" />
</metal:head>

实时示例

此产品包含所有字段的演示视图集。您必须通过包含tests.zcml文件来激活它们。

[instance]
eggs +=
    ...
    rt.zptformfield

zcml +=
    ...
    rt.zptformfield:tests.zcml

检查代码以获取示例列表的更新。

作者

此产品由RedTurtle技术团队开发。

RedTurtle Technology Site

变更日志

0.2.1 (2015-09-08)

  • 日历弹出UI语言默认为英语 [keul]

  • 添加了更改日历语言的方法,但在文档中添加了适当的警告 [keul]

  • 添加了缺失但必需的calendar_formfield参数。日历JavaScript未正常工作。 [keul]

0.2.0 (2014-10-09)

  • 添加了日历字段支持和示例 [keul]

0.1.0a1 (2013-12-18)

  • 初始版本

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

rt.zptformfield-0.2.1.tar.gz (22.9 kB 查看散列)

上传时间

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面