am-impact / amforms
该包最新版本(1.8.0)没有提供许可证信息。
Craft的表单插件
1.8.0
2018-02-27 15:30 UTC
Requires
- composer/installers: ~1.0
README
Craft中的表单,变得简单易用
CP功能
当用户有权限访问插件时,他们可以在CP中执行各种操作。有一个额外的设置,允许用户控制插件的设置。
表单
您可以激活提交和/或通知。这意味着您可以选择忽略提交,但仅在表单提交时接收通知。
通知已激活,所有信息将默认填写。 发件人姓名 和 电子邮件地址 字段将自动包含Craft CP中电子邮件设置的详细信息。
插件将使用自己的模板来显示表单和电子邮件提交。您可以选择全局或按表单覆盖这些模板!只需在模板文件夹中创建自己的文件夹(例如:_amforms)并创建一个要覆盖的模板。您可以在占位符中看到默认模板的名称,因此如果您创建了一个具有相同名称的模板,则可以选择将其作为所有表单的默认模板。当您创建一个具有不同名称的模板时,您可以创建一个针对每个表单的模板。
此选项卡仅供管理员使用。
字段
安装插件后,您将获得一些默认的常用字段。创建的字段存储在与Craft的字段不同的上下文/作用域中。这意味着您可以在任何表单中重复使用这些字段,并且它们不会在Craft的字段列表中显示。
导出
您可以选择按表单导出您的提交。您可以选择包含在导出中的字段(支持矩阵!)。创建导出时,它将启动一个任务,将您的提交导出到存储文件夹中的文件。完成后,您可以选择下载文件或重新启动导出。
设置
默认情况下,表单已激活反垃圾邮件,但也可以选择激活Google reCAPTCHA。
显示您的表单
简单标签
这将仅显示基本字段!
{{ craft.amForms.displayForm('formHandle') }}
简单字段标签
{% set form = craft.amForms.getForm('formHandle') %}
{{ form.displayField('fieldHandle') }}
简单字段标签(使用命名空间)
{% set form = craft.amForms.getForm('formHandle') %}
<input type="hidden" name="namespace" value="{{ form.getNamespace() }}">
{{ form.displayField('fieldHandle') }}
自定义HTML
<form method="post" action="" accept-charset="UTF-8">
{{ getCsrfInput() }}
{# This should always be here! #}
<input type="hidden" name="action" value="amForms/submissions/saveSubmission">
{# Insert your form's handle. #}
<input type="hidden" name="handle" value="formHandle">
{# Optional: Redirect URL. Will redirect to current page by default. #}
<input type="hidden" name="redirect" value="contact?message=thankyou">
{# Optional: Anti-spam protection. #}
{{ craft.amForms.displayAntispam() }}
{# Optional: Google reCAPTCHA protection. #}
{{ craft.amForms.displayRecaptcha() }}
{# Place the HTML of your fields here #}
<input type="submit" value="Submit">
</form>
带displayField的自定义HTML
{% set form = craft.amForms.getForm('formHandle') %}
<form method="post" action="" accept-charset="UTF-8">
{{ getCsrfInput() }}
{# This should always be here! #}
<input type="hidden" name="action" value="amForms/submissions/saveSubmission">
{# Insert your form's handle. #}
<input type="hidden" name="handle" value="{{ form.handle }}">
{# This will namespace your inputs (for IDs and such), but it's not required though #}
<input type="hidden" name="namespace" value="{{ form.getNamespace() }}">
{# Optional: Anti-spam protection. #}
{{ craft.amForms.displayAntispam() }}
{# Optional: Google reCAPTCHA protection. #}
{{ craft.amForms.displayRecaptcha() }}
{# Place the HTML of your fields here #}
{{ form.displayField('fieldHandle') }}
{{ form.displayField('aFieldHandle') }}
{{ form.displayField('anotherFieldHandle') }}
<input type="submit" value="Submit">
</form>
自定义字段HTML
将 formHandle 更改为您表单的句柄。
<div class="field">
<label for="frm_comment">Comment</label>
<input type="text" id="frm_comment" name="fields[comment]" value="{% if formHandle.comment is defined %}{{ formHandle.comment }}{% endif %}">
{% if formHandle is defined %}
{{ errorList(formHandle.getErrors('comment')) }}
{% endif %}
</div>
自定义矩阵字段
<div class="field">
{#
Notify Craft which Matrix block (handle) will be inserted.
Our field name for this example is: Persons
Our block name for this example is: Person
#}
<input type="hidden" name="fields[persons][new1][type]" value="person">
{# Block fields #}
<label for="frm_firstname">First name</label>
<input type="text" id="frm_firstname" name="fields[persons][new1][fields][firstName]">
<label for="frm_lastname">Last name</label>
<input type="text" id="frm_lastname" name="fields[persons][new1][fields][lastName]">
{% if formHandle is defined %}
{{ errorList(formHandle.getErrors('persons')) }}
{% endif %}
</div>
错误列表宏
{% macro errorList(errors) %}
{% if errors %}
<ul class="errors">
{% for error in errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
{% endmacro %}
如果您想在模板本身中包含它,请使用
{% from _self import errorList %}
仪表板小部件
在您的仪表板上显示您的最新提交。