am-impact/amforms

该包最新版本(1.8.0)没有提供许可证信息。

Craft的表单插件

安装数: 2,603

依赖项: 0

建议者: 0

安全: 0

星标: 121

关注者: 16

分支: 21

开放性问题: 66

类型:craft-plugin

1.8.0 2018-02-27 15:30 UTC

README

Craft中的表单,变得简单易用

CP功能

当用户有权限访问插件时,他们可以在CP中执行各种操作。有一个额外的设置,允许用户控制插件的设置。

表单

您可以激活提交和/或通知。这意味着您可以选择忽略提交,但仅在表单提交时接收通知。

NewForm

通知已激活,所有信息将默认填写。 发件人姓名电子邮件地址 字段将自动包含Craft CP中电子邮件设置的详细信息。

Notifications

插件将使用自己的模板来显示表单和电子邮件提交。您可以选择全局或按表单覆盖这些模板!只需在模板文件夹中创建自己的文件夹(例如:_amforms)并创建一个要覆盖的模板。您可以在占位符中看到默认模板的名称,因此如果您创建了一个具有相同名称的模板,则可以选择将其作为所有表单的默认模板。当您创建一个具有不同名称的模板时,您可以创建一个针对每个表单的模板。

此选项卡仅供管理员使用。

Templates

字段

安装插件后,您将获得一些默认的常用字段。创建的字段存储在与Craft的字段不同的上下文/作用域中。这意味着您可以在任何表单中重复使用这些字段,并且它们不会在Craft的字段列表中显示。

Fields

导出

您可以选择按表单导出您的提交。您可以选择包含在导出中的字段(支持矩阵!)。创建导出时,它将启动一个任务,将您的提交导出到存储文件夹中的文件。完成后,您可以选择下载文件或重新启动导出。

NewExport

ExportCriteria

ExportOverview

设置

默认情况下,表单已激活反垃圾邮件,但也可以选择激活Google reCAPTCHA。

General

Exports

AntiSpam

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 %}

仪表板小部件

在您的仪表板上显示您的最新提交。

WidgetSettings

WidgetSmall

WidgetBig