terminal42 / contao-mp_forms
Contao开源CMS的扩展,用于使用表单生成器创建多步表单
Requires
- php: ^8.1
- codefog/contao-haste: ^5.2
- contao/core-bundle: ^4.13 || ^5.0.8
- symfony/filesystem: ^5.4 || ^6.0
- symfony/var-dumper: ^5.4 || ^6.0
Requires (Dev)
- contao/manager-plugin: ^2.12
- contao/test-case: ^5.0
- phpunit/phpunit: ^9.6
- terminal42/contao-build-tools: @dev
- dev-main
- 5.2.0
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.4.0
- 4.3.10
- 4.3.9
- 4.3.8
- 4.3.7
- 4.3.6
- 4.3.5
- 4.3.4
- 4.3.3
- 4.3.2
- 4.3.1
- 4.3.0
- 4.2.3
- 4.2.2
- 4.2.1
- 4.2.0
- 4.1.0
- 4.0.0
- 4.0.0-rc2
- 4.0.0-rc1
- 3.0.10
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 3.0.0-rc3
- 3.0.0-rc2
- 3.0.0-rc1
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
This package is auto-updated.
Last update: 2024-09-22 10:44:21 UTC
README
这是一个Contao扩展,允许您在多个页面创建真实表单。
安装模块后,您在表单定义中有一个新的设置,可以定义扩展需要工作的GET参数。默认情况下,这是step
,因此会在URL中生成step=1
、step=2
等。如果出于某种原因step
已经在您的网页上使用,您可以在那里更改设置。
此外,您将获得一个名为页面分页
的新表单字段。每次使用此表单字段时,模块都会在表单中插入一个分页。
mp_forms
验证用户是否手动跳转到第3步而未填写第1步或第2步。在这种情况下,用户将被重定向到第1步(显然,只有当第1步有必填字段时)。
如果您不希望用户被重定向但希望有一些Ajax魔法,您可以将此扩展与我们的ajaxform结合使用。它们配合得非常好!
⚠️ 您不得使用常规提交表单字段元素
请注意,您不得使用常规提交表单字段,而应再次使用
页面分页
。否则,您将不会显示任何返回
按钮。mp_forms
将自动检测最后一个页面分页
的行为类似于表单提交。如果您在表单的任何地方使用常规提交表单字段,mp_forms
将完全禁用,您将不会有任何步骤!
摘要
元素
将表单拆分为多个步骤的典型用例是将之前输入的数据进行总结。这可能在数据提交之前的最后一步发生,也可能在中间发生。您可以使用这种特殊表单字段类型来显示数据。可以通过Contao典型的“简单令牌”技术访问数据。所有之前步骤的表单字段都通过##form_*##
表示法传递。您还可以使用##formlabel_*##
访问标签。
由于文件有多个值,因此文件的处理方式略有不同。您可以使用extension
、size
、mime
以及为您生成的download_url
。为了简化,文件的默认令牌(例如,如果表单字段名为upload
,则为##file_upload##
)包含使用ce_download
模板渲染的HTML。
可以使用##mp_forms_summary##
令牌显示所有提交字段的简单摘要,封装在简单的<div>
元素中。
由于尝试通常更容易,并且您不必记住所有可用的令牌,因此您可以直接放置##mp_forms_debug##
令牌,这将显示所有可用的令牌及其内容。
前端模块以显示步骤导航
本模块附带一个前端模块,允许您轻松为每个步骤构建前端导航。未进行任何样式设计,最终可能看起来像这样
请注意,默认情况下,步骤在每种语言中都将命名为 步骤 x
。如果您提供它,将使用 页面分页
表单字段标签字段用于导航。
插入标签
您可以使用以下插入标签来获取有关表单状态的详细信息
请注意,它们与 自定义 HTML
前端模块一起使用时特别有用。假设您想显示表单 ID 为 5
的进度条
<div class="progress"> <div class="progress-bar"> <div class="progress-bar-inner" style="width:{{mp_forms::5::step::percentage}}%"></div> </div> <div class="numbers">{{mp_forms::5::step::numbers}}</div> </div> ```