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-05-03 00:41:32 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();
            }
                           
        ],
    ],