milesherndon / formstack
此包已被弃用且不再维护。未建议替代包。
插件,用于将Formstack表单集成到Craft CMS 3。
1.0.3
2018-10-08 16:15 UTC
Requires
- craftcms/cms: ^3.0.0
This package is auto-updated.
Last update: 2023-03-03 23:23:56 UTC
README
⛔️ 已弃用 ⛔️
Craft CMS 3.x版本的Formstack插件
插件,用于集成Formstack表单。
要求
此插件需要Craft CMS 3.0.0或更高版本。
安装
要安装插件,请按照以下说明操作。
-
打开您的终端并转到您的Craft项目
cd /path/to/project -
然后告诉Composer加载插件
composer require milesherndon/formstack -
在控制面板中,转到设置 → 插件,然后点击Formstack的“安装”按钮。
Formstack概述
此插件具有Formstack Form字段类型,允许选择表单。字段直接从关联的账户拉取表单。
此外,当字段显示时,它还会提供Formstack返回的所选表单的JSON。
配置Formstack
安装后,转到设置 -> Formstack并保存oAuth令牌。此令牌可以在Formstack账户的API设置中找到。
使用Formstack
字段类型
创建一个字段并选择Formstack Form字段类型。
显示表单
使用来自formstack的数据设置表单变量。
{% set formstack = craft.formstack.getFormById(entry.contactForm) %}
默认情况下,只返回响应中的字段。但是,可以通过添加第二个参数来返回额外项,如下所示
{% set formstack = craft.formstack.getFormById(entry.contactForm, ['viewkey', 'name']) %}
这将同时在响应中传递viewkey和name。要查看可以返回的内容,请查看API文档。
示例模板
{% set formstack = craft.formstack.getFormById(entry.contactForm, ['viewkey']) %}
{% if formstack is defined %}
<form method="post" novalidate action="" id="fsForm{{entry.contactForm}}" class="contact__form__form form__form js-form fsForm" >
<input type="hidden" name="action" value="formstack/form-submit" />
<input type="hidden" name="redirect" value="{{ entry.getUrl() }}" />
<input type="hidden" name="success" value="Thanks for your message, we will be in touch soon." />
<input type="hidden" name="form" value="{{entry.contactForm}}" />
<input type="hidden" name="viewkey" value="{{formstack.viewkey}}" />
<input type="hidden" name="hidden_fields" id="hidden_fields{{entry.contactForm}}" value="" />
<input type="hidden" name="_submit" value="1" />
<input type="hidden" name="incomplete" id="incomplete{{entry.contactForm}}" value="" />
<input type="hidden" id="viewparam" name="viewparam" value="636555" />
<input type="hidden" id="analytics" name="analytics" value="https://analytics.formstack.com">
<input type="hidden" name="{{ craft.app.config.general.csrfTokenName }}" value="{{ craft.app.request.csrfToken }}">
<div class="fsPage" id="fsPage{{entry.contactForm}}-1">
{% for field in formstack.fields %}
<div class="form__input-wrapper fsCell fsFieldCell" id="fsCell{{field.id}}">
{% if field.type == "name" or field.type == "text" or field.type == "email" or field.type == "phone" %}
{% if field.placeholder is defined and field.placeholder is not empty %}
{% set placeholder = field.placeholder %}
{% else %}
{% set placeholder = field.label %}
{% endif %}
<input type="{{field.type}}" id="field{{field.id}}" name="field_{{field.id}}" class="fsField{% if field.required %} fsRequired required{% endif %}" {% if field.required %}aria-required="true" required="required"{% endif %} placeholder="{{placeholder}}"/>
<label for="field{{field.id}}">{{field.label}} {% if field.required %} <span>*</span>{% endif %}</label>
{% endif %}
{% if field.type == "textarea" %}
<textarea id="field{{field.id}}" name="field_{{field.id}}" class="fsField{% if field.required %} fsRequired required{% endif %}" {% if field.required %}aria-required="true" required="required"{% endif %} placeholder=""></textarea>
<label for="field{{field.id}}">{{field.label}} {% if field.required %} <span>*</span>{% endif %}</label>
{% endif %}
{% if field.type == "select" %}
<div class="select-box">
<select id="field{{field.id}}" name="field_{{field.id}}" class="fsField{% if field.required %} fsRequired required{% endif %}" {% if field.required %}aria-required="true" required="required"{% endif %}>
<option value="" disabled selected>Choose One</option>
{% for option in field.options %}
<option value="{{option.value}}">{{option.label}}</option>
{% endfor %}
</select>
</div>
<label id="label{{field.id}}" for="field{{field.id}}">{{field.label}} {% if field.required %} <span>*</span>{% endif %}</label>
{% endif %}
</div>
{% endfor %}
</div>
<div id="fsSubmit{{entry.contactForm}}" class="fsSubmit">
<input type="submit" id="fsSubmitButton{{entry.contactForm}}" class="fsSubmitButton" value="Submit" />
</div>
</form>
{% endif %}
Formstack路线图
- 添加额外检查以验证表单是否存在
- 允许默认表单选择
- 添加默认模板
- 添加Formstack响应缓存
由MilesHerndon提供