floor12 / yii2-module-feedback
包含几种表单类型的反馈,管理员控制器和一些设置。
Requires
- php: >=7.1.0
- floor12/yii2-editmodal: dev-master
- floor12/yii2-fprotector: dev-master
- floor12/yii2-module-files: dev-master
- floor12/yii2-phone: dev-master
- kartik-v/yii2-widget-datepicker: dev-master
- yii2mod/yii2-enum: *
- yiisoft/yii2: ~2.0.13
README
用于处理网站用户反馈的模块。默认包含普通嵌入式和模态窗口表单。可以配置不同主题的反馈,并发送通知到不同的地址。通过独立的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
有额外的配置参数
adminRoles
- 可以管理的用户角色数组,默认包含['@']
,提供对所有已授权用户的访问权限;adminLayout
- 管理控制器布局的别名,默认为@app/views/layouts/main
;frontendLayout
- 前端控制器布局的别名(如果要在单独页面上显示表单),默认为@app/views/layouts/main
;viewFormModal
- 模态窗口表单视图路径的别名,默认为@vendor/floor12/yii2-module-feedback/src/views/frontend/_form_modal_bs
;viewFormEmbedded
- 嵌入页面或单独页面显示表单视图路径的别名,默认为@vendor/floor12/yii2-module-feedback/src/views/frontend/_form_embedded
;viewSuccessModal
- 成功发送反馈后发送给模态窗口的视图路径的别名,默认为@vendor/floor12/yii2-module-feedback/src/views/frontend/_success_modal_bs
;viewSuccessEmbedded
- 成功发送反馈后发送给客户端的视图路径的别名,默认为@vendor/floor12/yii2-module-feedback/src/views/frontend/_success_ebedded
;viewMailUserTemplate
- 感谢用户模板的视图路径的别名,默认为@vendor/floor12/yii2-module-feedback/src/views/mail/_user_thanks.php
;viewMailAdminTemplate
- 成功发送反馈后发送给客户端的视图路径的别名,默认为@vendor/floor12/yii2-module-feedback/src/views/mail/_admin_info.php
;emailRequired
-email
是否是必填字段,默认为false
;phoneRequired
-phone
是否是必填字段,默认为true
;
请求主题和通知地址
为了使用模块,至少需要通过Yii2应用程序的参数设置一个配置。通常,这可以在app\config\params.php
或common\config\params.php
文件中完成。需要在参数中指定no-replyEmail
,no-replyEmail
和contactForm
数组。
配置示例
[ '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
负责。