floor12/yii2-module-feedback

包含几种表单类型的反馈,管理员控制器和一些设置。

安装: 0

依赖: 1

建议者: 0

安全: 0

星星: 0

关注者: 3

分支: 1

开放性问题: 0

类型:yii2-module

1.0.4 2023-09-14 07:48 UTC

This package is auto-updated.

Last update: 2024-09-07 15:12:54 UTC


README

Latest Stable Version Latest Unstable Version Total Downloads License

用于处理网站用户反馈的模块。默认包含普通嵌入式和模态窗口表单。可以配置不同主题的反馈,并发送通知到不同的地址。通过独立的CRUD进行反馈管理。

安装

将模块添加到项目中

要添加模块,请执行以下命令

$ composer require floor12/yii2-module-feedback

或者将以下行添加到您的composer.json文件中的"required"部分

"floor12/yii2-module-feedback": "dev-master"

执行迁移

为了存储保存的反馈,使用feedback表。执行迁移

$ ./yii migrate --migrationPath=@vendor/floor12/yii2-module-feedback/src/migrations

建议使用额外的组件自动应用项目中已安装模块的迁移,例如 fishvision/yii2-migrate

在应用程序中注册模块并配置它

为了进一步使用,需要在应用程序的配置文件中注册模块,在modules部分。最小配置如下

'modules' => [
    'modules' => [
        'feedback' => [
            'class' => 'floor12\feedback\Module',
        ],
    ]
    ...

在此示例中,floor12\feedback\Module有额外的配置参数

  1. adminRoles - 可以管理的用户角色数组,默认包含['@'],提供对所有已授权用户的访问权限;
  2. adminLayout - 管理控制器布局的别名,默认为@app/views/layouts/main
  3. frontendLayout - 前端控制器布局的别名(如果要在单独页面上显示表单),默认为@app/views/layouts/main
  4. viewFormModal - 模态窗口表单视图路径的别名,默认为@vendor/floor12/yii2-module-feedback/src/views/frontend/_form_modal_bs
  5. viewFormEmbedded - 嵌入页面或单独页面显示表单视图路径的别名,默认为@vendor/floor12/yii2-module-feedback/src/views/frontend/_form_embedded
  6. viewSuccessModal - 成功发送反馈后发送给模态窗口的视图路径的别名,默认为@vendor/floor12/yii2-module-feedback/src/views/frontend/_success_modal_bs
  7. viewSuccessEmbedded - 成功发送反馈后发送给客户端的视图路径的别名,默认为@vendor/floor12/yii2-module-feedback/src/views/frontend/_success_ebedded
  8. viewMailUserTemplate - 感谢用户模板的视图路径的别名,默认为@vendor/floor12/yii2-module-feedback/src/views/mail/_user_thanks.php
  9. viewMailAdminTemplate - 成功发送反馈后发送给客户端的视图路径的别名,默认为@vendor/floor12/yii2-module-feedback/src/views/mail/_admin_info.php
  10. emailRequired - email是否是必填字段,默认为false
  11. phoneRequired - phone是否是必填字段,默认为true

请求主题和通知地址

为了使用模块,至少需要通过Yii2应用程序的参数设置一个配置。通常,这可以在app\config\params.phpcommon\config\params.php文件中完成。需要在参数中指定no-replyEmailno-replyEmailcontactForm数组。

配置示例

[
    'params'=>[
        'no-replyEmail' => 'no-reply@mcmoscow.ru',
        'no-replyName' => 'Мебельный Центр Москва',
        'contactForm' => [
                [
                    'title' => 'По общим вопросам',
                    'emails' => ['main@example.com', 'main@example.com']
                ],
                [
                    'title' => 'По вопросам аренды',
                    'emails' => ['main@example.com', 'main@example.com']
                ]
            ]
        ]
    ];

使用方法

用于处理用户请求和渲染表单的是floor12\feedback\controllers\FrontendController,它具有处理模态窗口表单的action /feedback/admin/form-modal和以普通页面形式显示的action /feedback/admin/form

例如,放置一个按钮以打开包含表单的模态窗口可能如下所示

使用Bootstrap Modal和相应的Jquery

<button onclick="showForm('/feedback/admin/form-modal',0)">Напишите нам письмо</button>

对于这种方法,需要在应用程序中注册 floor12\editmodal\EditModalAsset。同样地,可以使用 floor12\feedback\components\OpenContactModalButtonWidget 达到相同的目的。

如果您不想使用Bootstrap和Jquery,可以使用我的纯实现模态窗口。它将绘制模态窗口并加载表单,以及用于基本表单验证的Yii2所需jQuery。只有当用户打开表单时,jQuery才会加载到那里。

<button onclick="f12editmodal.open('/feedback/admin/form-modal')">Напишите нам письмо</button>

对于这种情况,需要在应用程序中注册另一个包:floor12\editmodal\EditModal2Asset

管理

注册到应用程序后,默认的CRUD管理可通过地址 /feedback/admin/index 访问,由 floor12\feedback\controllers\AdminController 负责。