egor260890/yii2-feedback-module

yii2-feedback-module

1.0.2 2018-05-09 06:46 UTC

This package is not auto-updated.

Last update: 2024-09-20 02:29:05 UTC


README

反馈模块

安装

执行以下命令

php composer.phar require --prefer-dist egor260890/yii2-feedback-module "*"

或者将以下内容添加到 composer.json

"egor260890/yii2-feedback-module": "*"

然后执行

composer update

执行迁移

yii migrate --migrationPath=@egor260890/feedback/migrations/

使用

连接消息查看模块

'modules' => [
        'feedback' => [
            'class' => 'egor260890\feedback\Module',
        ],
    ],

在前端

'modules'=>[
        'feedback-send' => [
            'class' => 'egor260890\feedback\widgets\Module', 
        ],
    ],

用于输出反馈表单

<?=\egor260890\feedback\widgets\FeedbackForm::widget([
            'id'=>'feed',
            'template'=>'{name}{tel}{email}{company_name}{message}{button}',
            'rules'=>function(){
                return [
                    [['tel'], 'required','message'=>'custom message'] //можно задать правила валидации
                ];
            },
            'fieldsConfig'=>[ //настройка полей
                'name'=>[
                    'template'=>'{input}', 
                    'placeholder'=>'please'
                ],
                'tel'=>[
                    'label'=>'custom label'
                ],
                'button'=>[
                    'label'=>'custom button name',
                    'class'=>'btn btn-warning'
                ]
            ],
            'formConfig'=>[
                'enableAjaxValidation'   => true,
                'enableClientValidation' => true,
            ]
        ])?>
        

跟踪事件发送

创建监听器

class Observer implements FeedbackObserverInterface{
   
}

在模块配置中连接它

'modules'=>[
        'feedback-send' => [
            'class' => 'egor260890\feedback\widgets\Module',
            'observers'=>[
                \mypath\Observer:class,
                \mypath\Observer2:class
            ]
            //либо
            'observers'=>\mypath\Observer:class
            //либо 
            'observers'=>function(){
                return new Observer();
            }
                           
        ],
    ],