pstaender / silverstripe-customformpage
通过CMS中的文本输入定义自定义表单字段
v0.4.0
2024-05-26 05:44 UTC
Requires
- php: >=8
- silverstripe/framework: ^5
README
使用这种简洁的语法在你的创建的 CustomFormPage
中定义自定义表单字段
{{ FieldName | My Field: | Dropdown | { "Option1": "Foo", "Option2": "Bar" } }}
{{ FieldName * | My Required Field: | Textarea }}
{{ Captcha | | Recaptcha }}
你可以使用任意数量的表单字段。
要求
- SilverStripe 4+
参数
以下参数以 |
分隔,列在每个 {{ }}
表单字段块中(参数顺序 不是 随意的)
- 名称:以驼峰命名法描述字段名称的字符串;例如:
Email
、FirstName
… * 如果以*
结尾,则为必填字段;例如:Email *
- 标题:字符串,作为标题,可以包含除
|
分隔符之外的任何字符;例如:Your eMail:
- 字段类:可以是每个现有的字段类,不包括
Field
后缀;例如:Text
、Textarea
、Email
、Dropdown
… - (关联) 数组作为字段的选项 * 可选 * 必须是JSON * 例如对于
DropdownField
必须指定
模板中使用
您可以通过 $CustomForm
访问表单
<% with $MyCustomFormPage %> <h1>$Title</h1> $CustomForm <% end_with %>
注释和HTML标签
您可以使用注释 #
和HTML标签。HTML标签将被转换为SilverStripe LiteralFields
# My advanced Poll Form Desctiption
{{ Email * | Your eMail (required): | Email }}
<hr />
<h2>Additional Information</h2>
# Description of something
{{ Age | Your age: | Dropdown | { "Under20": "younger or just 20", "Over20": "older than 20" } }}
排除表单提交中的字段
您可以通过配置显式地防止字段写入提交。只需在您的配置中定义它们即可
CustomFormPageSubmission: excludeParameters: - Foo - Bar
模板变量
您可以在模板中检查 $FormWasSuccessfullySended
和 $FormWasSubmitted
许可协议
(C) 2017 由 Philipp Staender 制作,MIT 许可协议