catdesign / forms-plugin
为 October CMS 简化表单的创建和管理
1.0.8
2022-02-20 10:17 UTC
Requires
- composer/installers: ~1.0
- sendpulse/rest-api: ~1.0
README
作者: Semen Kuznetsov (CatDesign Group)
作者 URL: https://cat-design.ru
英文
关于插件
允许您管理网站上的表单。处理表单,发送邮件模板中的数据。与 Send Pulse 服务集成。
此插件适用于开发者。允许您简化网站表单的实现,为客户组织表单管理。
插件通过标准的 data-attributes-api 使用 Ajax 处理器。所有事件都在管理界面中管理。
插件提供基本的表单绘制部分。标准空白非常灵活,但在某些情况下,您可能需要根据基本示例编写自己的代码。
表单与 SendPulse 的集成是开箱即用的。为此,您需要填写 SendPulse API 设置。
其他功能。Shopaholic 订单与 SendPulse 的集成。需要 OrdersForShopaholic 插件。
使用 composer 安装
composer require catdesign/forms-plugin
注意!不要给予客户完整的系统根访问权限,否则他们可能会通过错误的设置破坏插件。权限在插件中已准备好。创建新用户并分配 - 管理员权限。
获取表单
首先,创建表单和必要的字段。表单创建后,将分配一个代码。将表单组件抛到所需的网站页面或布局中。
总共有两种获取表单的方式。
1. 通过 ID 获取
{% set form = Forms.getByID(1) %}
我不推荐这种方法,因为删除表单时您将不得不替换代码中的调用。
2. 通过代码获取
{% set form = Forms.getByCode('code') %}
此方法更可取,因为您始终可以分配一个代码给表单。(需要开发者权限)
页面渲染(宏)
将宏导入模板
{% import 'catdesign.forms::macros' as Constructor %}
获取表单
{% set form = Forms.getByCode('code') %}
打开表单
{{ Constructor.open('css_id', form, 'css_classes', {additional_data_one: value, additional_data_two: value}) }}
渲染表单标题
{{ Constructor.title(form, 'css_title_classes', 'css_description_classes') }}
渲染所有字段
{{ Constructor.fields(form, 'css_wrapper_classes') }}
或渲染单个字段
{{ Constructor.hidden(form, 'field_code', 'css_classes', 'css_field_id') }}
{{ Constructor.text(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
{{ Constructor.select(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
{{ Constructor.number(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
{{ Constructor.checkbox(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
{{ Constructor.radio(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
{{ Constructor.textarea(form, 'field_code', 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
渲染提交按钮
{{ Constructor.submit(form, 'css_classes', 'css_wrapper_classes', 'css_field_id') }}
关闭表单
{{ Constructor.close() }}
从两个字段的简单反馈表单绘制示例
{% import 'catdesign.forms::macros' as Constructor %}
{% set form= Forms.getByCode('feedback') %}
{{ Constructor.open('feedback', form, 'form', {current_url: this.page.url}) }}
{{ Constructor.title(form, 'form__title', 'form__description') }}
{{ Constructor.text(form, 'name', 'form-group__field', 'form__group', 'feedback-name') }}
{{ Constructor.text(form, 'phone', 'form-group__field', 'form__group', null) }}
{{ Constructor.submit(form, 'button button__green', 'form__button', null) }}
{{ Constructor.close() }}
请注意,宏变量是可选的。如果不需要 css_classes,例如,可以传递 null。