yellow-three/voyager-forms

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

Ahoy! - 将表单集成到 Voyager 的包

dev-dev 2022-07-24 06:15 UTC

This package is auto-updated.

Last update: 2022-07-24 06:15:31 UTC


README

缺失的 Laravel 管理员表单模块

Laravel包为Voyager项目添加了动态表单创建和短代码插入。

  • 创建和管理表单及其字段(添加字段、拖放排序等)
  • 使用简单的短代码在前端输出表单({!! forms(<FORM_ID>) !!}
  • 前端上的每个表单输出都可以使用自定义布局进行覆盖
  • 所有提交都通过可覆盖的 HTML 邮件模板发送电子邮件
  • 所有提交都备份到数据库中,在 Voyager 管理员 > 表单 > 咨询下可访问

Pivotal Agency开发。

先决条件

安装

# 1. Require this Package in your fresh Laravel/Voyager project
composer require yellow-three/voyager-forms

# 2. Run the Installer
composer dump-autoload && php artisan voyager-forms:install

# 3. Configure to/from addresses
        -> Navigate to Admin -> Settings -> 'Forms' tab
        -> Adjust values
        -> Note: If you leave `Default Enquiry To Email` blank and set no email in the form setting, email will not be sent
        
# 4. Configure "MAIL" environment variables

# 5. (optional) Add Google invisible reCAPTCHA
        -> Navigate to Admin -> Settings -> 'Admin' tab
        -> Insert Google reCATPCHA keys 

显示表单

您可以在前端以任何类型的输出轻松显示创建的表单 - 我们使用短代码来渲染表单,因此请将 {!! forms(1) !!} 添加到页面/帖子中,以查看默认的联系人表单。

表单钩子

您可能还希望在表单提交时(但在提交保存到数据库之前 - 例如,以便您可以执行自定义验证)包含自定义逻辑和功能。这可以通过一个 表单钩子 块来完成 - 简单指定您的控制器命名空间路径和您想要调用的方法,Voyager 表单模块将在提交时自动执行它。例如

YellowThree\AwesomeModule\Somewhere\ClassName::anExampleHey('hello world')

注意,在上面的示例中,实际方法的第一个参数是提交数据,第二个参数是'hello world'。

自定义表单输出

此模块以基本结构在前端输出表单。但是,您很容易构建自己的表单布局。

完全自定义布局

  • views/vendor/voyager-forms/layouts 中创建一个新的 blade 模板
  • 在 Voyager 管理员中编辑表单并选择您创建的新布局

要获得完全自定义的输出,您可能需要定义 <form> html,包括每个表单字段。

覆盖字段

您还可以覆盖 views/vendor/voyager-forms/forms/render.blade.php 以更改表单字段的外观。

自定义电子邮件模板

本模块在每次提交时发送一封外观通用的电子邮件。然而,您很容易构建自己的电子邮件模板。

  • views/vendor/voyager-forms/email-templates 中创建一个新的 blade 模板(您也可以简单地覆盖同一位置的 default.blade.php
  • 在 Voyager 管理员中编辑表单并选择合适的电子邮件模板

使用输入类型

大多数输入类型相当直观。两个非标准字段是提交和分组字段。以下是使用它们的方法

分组

您可以通过使用两个分组字段来对表单字段进行分组。第一个分组字段的标签将是您分组字段的标题。您可以为分组字段标题 span 和包含字段的分组字段 div 添加自定义 CSS 类,就像其他表单元素一样。默认的相应类是 .groupedInput 和 .groupedInputTitle。由于包不包含任何 CSS,我们鼓励您在您的应用程序中为这两个类进行样式设计。

您需要在表单构建器中创建一个 '分组' 字段,既在您想要分组字段开始的地方,也在结束的地方。如果您缺少一个关闭的分组字段,它将在表单末尾自动关闭。

提交

您可以使用提交输入字段自定义表单的提交按钮文本和 CSS。您应该在表单构建器的末尾放置此内容。