arris/voyager-forms

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

2.0.3 2022-08-15 06:10 UTC

This package is auto-updated.

Last update: 2024-09-15 11:01:09 UTC


README

为什么进行分支?

我需要更新版本依赖以继续使用此包。欢迎类似的PR。

缺失的表单模块,为缺失的Laravel管理员。

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

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

Pivotal Agency构建。

先决条件

安装

# 1. Require this Package in your fresh Laravel/Voyager project
composer require pvtl/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 Forms模块将在提交时自动执行它。例如

Pvtl\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管理员中编辑表单并选择相应的电子邮件模板

使用输入类型

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

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

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

提交

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