rias/craft-simple-forms

此包已废弃且不再维护。未建议替代包。

简单表单

安装: 308

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:craft-plugin

2.0.2 2019-02-19 15:43 UTC

This package is auto-updated.

Last update: 2020-12-06 10:52:22 UTC


README

Craft中的表单,易于使用

这是流行Craft 2 a&m impact forms插件的Craft 3版本。请勿使用此版本。

以下是原始README

控制面板功能

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

表单

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

NewForm

默认情况下,通知被激活,所有信息都将自动填写。 发件人姓名电子邮件地址 字段将自动包含Craft控制面板中电子邮件设置的详细信息。

Notifications

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

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

Templates

字段

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

Fields

导出

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

NewExport

ExportCriteria

ExportOverview

设置

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

General

Exports

AntiSpam

reCAPTCHA

自动清理

要自动删除旧提交,请启用 清理提交,配置阈值(例如-4 weeks)并设置cron作业定期调用https://<yourDomain>/actions/simple-forms/submissions/clean-up示例/etc/crontab条目(每天凌晨1:23 AM进行清理)

23 1 * * * root curl -s https://<yourDomain>/actions/simple-forms/submissions/clean-up &>> /var/log/simple-forms-cleanup.log

显示您的表单

简单标签

这只会显示基本字段!

{{ 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