一些用于Zope/Plone HTML表单开发的ZPT宏
项目描述
这不是你正在寻找的表单库
95%的情况下你不需要这个包:尝试一些真实的Plone表单库,比如
继续前进… 继续前进…
你的思想力量对我无效,孩子
如果你想真正了解这是怎么回事,请继续阅读。
介绍
这不是一个Plone表单库,它只是一组你可以使用的 ZPT宏,用于以旧方式创建HTML表单,同时保持Plone布局。因此,此产品不会处理提交表单时应该做什么,它只专注于渲染一些高级字段。
好事是你可以使用这些宏与旧方式TTW方法。
字段参考
每个字段都有一些你可以/必须配置的自定义选项,但其中一些是全局的
- fieldName(必需)
字段的名称,即在发送表单时将从请求中读取的名称
- fieldLabel
字段的标签
- fieldHelp
字段的附加说明
- required
显示字段的所需UI信息。 请注意 这只是一个视觉效果,你负责真正处理需求。
- cssFieldAdditionalClasses
附加到包含整个字段的div上的CSS类
行字段
此字段可用于为提交的表单提供元素列表(字符串)。元素从文本输入中逐个加载。
字段名称将组成“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可以获得此功能的最佳方式。
字段名称将组成“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或更高)。
附加参数
- 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内容上进行。
提交的数据将是所选文档的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>
多值引用字段
这与上面的引用字段相同,但您将能够从显示的覆盖中选择多个元素。
提交的数据将是所选文档的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选择元素或弹出日历小部件来填写日期。
此字段基于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
检查代码以获取示例列表的更新。
项目详情
rt.zptformfield-0.2.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 8e8e9879b8163198151eb0ba398f0ef800b551a5ffa253748f3954f96f30415d |
|
MD5 | 0d34bb150c27508ef7ecbe73a32b844f |
|
BLAKE2b-256 | ca9d0ae9bb0d4e781380e99dcaf7c75216457b3001999aaab2f8fb6e9dba0554 |