dev-master
9999999-dev
The Requires
- himiklab/yii2-sortable-grid-view-widget *
- kartik-v/yii2-widget-depdrop @dev
- pantera-digital/yii2-grid @dev
by webmayak
by sopranowest
Rules module for Yii Framework 2.x gives ability to create and manage reactions for events, (*1)
Предпочтительно через composer:, (*2)
composer require pantera-digital/yii2-rules "@dev"
Или добавьте в composer.json, (*3)
"pantera-digital/yii2-rules": "@dev"
и выполните:, (*4)
composer update
php yii migrate/up --migrationPath=@pantera/rules/migrations
Добавить в frontend/config/main.php
, (*5)
... 'bootstrap' => ['rules'] ... 'modules' => [ 'rules' => [ 'class' => 'pantera\rules\Module', 'classes' => [ namespace\to\YourClassName::className() => [ namespace\to\YourClassName::YOUR_CLASS1_EVENT_KEY_1, namespace\to\YourClassName::YOUR_CLASS1_EVENT_KEY_2, ... ], namespace\to\YourClassName2::className() => [ namespace\to\YourClassName2::YOUR_CLASS2_EVENT_KEY_1, namespace\to\YourClassName2::YOUR_CLASS2_EVENT_KEY_2, ... ], ], ], ] ...
Добавить в backend/config/main.php
, (*6)
... 'modules' => [ 'rules' => [ 'class' => 'pantera\rules\admin\Module', 'permissions' => ['admin'], ], ] ...
В бекенде управление осуществляется по адресу index.php?r=rules/rules. Необходимо добавить требуемые вам rule и в них задать actions на события., (*7)
В коде action доступны переменные:, (*8)
$model
- объект который сгенерировал событие;, (*9)
$user
- текущий пользователь системы, при котором событие сгенерировано., (*10)
Пример action, который отправляет уведомление на email администратора при запросе обратного звонка от пользователя на сайте (событие сохранения в БД запроса на обратный звонок):, (*11)
common\models\CallMe::EVENT_AFTER_INSERT Yii::$app->mailer->compose('call-me', ['model' => $model]) ->setFrom('your_mail@domain.com') ->setTo(Yii::$app->params['managerEmail']) ->setSubject('Запрос звонка на сайте') ->send();