Для регистрации обработчиков системных событий используйте идентификатор приложения webasyst
. Подробнее об обработке событий.
- backend_assets
- backend_before_email_send_test
- backend_dashboard_before_action
- backend_dispatch_miss
- cli_finished
- cli_started
- mail_send.after
- mail_send.before
- signup
- sms_send.after
- sms_send.before
- view_helper_call
- view_helper_read
- view_page
- view_pages
- waid_auth
- backend_login
backend_assets
Позволяет добавлять дополнительное содержимое в секцию <head>
страниц панели управления.
Возвращаемое значение
Строка HTML-кода.
Пример кода обработчика
return "<script>console.log('I am executed in the backend.');</script>";
backend_before_email_send_test
Срабатывает перед проверочной отправкой email-сообщения в разделе «Настройки → Email-шаблоны».
Параметры
-
$params['channel'] waVerificationChannel
Экземпляр класса, с помощью которого выполняется отправка email-сообщения.
-
$params['data'] array
Информация об отправляемом сообщении.
Возвращаемое значение
Сообщение об ошибке в массиве вида
[ 'errors' => [ [ 'field' => '...', 'message' => '...', ] ], ]
Доступные значения поля field
:
'[channel_id]'
: отображение сообщения об ошибке под полем для ввода адреса получателя проверочного сообщения;'[recipient]'
: отображение сообщения об ошибке рядом с полем для ввода адреса получателя проверочного сообщения.
Пример кода обработчика
if (strpos(ifset($params, 'data', 'recipient', ''), 'test@') !== 0) { return [ 'errors' => [ [ 'field' => '[recipient]', 'message' => _wp('Use only email addresses starting with test@ for email templates testing.'), ] ], ]; }
backend_dashboard_before_action
Срабатывает при выполнении экшенов, описанных в классе webasystBackendActions.
Параметры
-
$params['action'] string
Идентификатор выполняемого экшена.
Пример кода обработчика
if ($params['action'] == 'default') { waLog::log(sprintf_wp('Dashboard has been displayed to user %s.', wa()->getUser()->getName()), 'myhandler.log'); }
backend_dispatch_miss
Срабатывает при попытке открыть панель управления несуществующего приложения.
Параметры
-
$app string
Идентификатор приложения из адреса открытой страницы.
Возвращаемое значение
Флаг, означающий необходимость скрыть сообщение об ошибке «Страница не найдена (404)».
Пример кода обработчика
waLog::log(sprintf_wp('User %s attempted to open %s app.', wa()->getUser()->getName(), $app_id), 'myhandler.log');
cli_finished
Срабатывает после выполнения CLI-контроллера.
Параметры
-
$params['app'] string
Идентификатор приложения, к которому относится CLI-контроллер.
-
$params['class'] string
Имя класса CLI-контроллера.
-
$params['exists'] bool
Флаг, означающий существование указанного класса.
-
$params['successful_execution'] bool
Флаг, означающий успешное выполнение контроллера — без зарегистрированных исключений.
Пример кода обработчика
if ($params['exists'] && !$params['successful_execution']) { waLog::log(sprintf_wp('Execution of CLI class %s of %s app could not be completed.', $params['class'], $params['app']), 'debug.log'); }
cli_started
Срабатывает перед выполнением CLI-контроллера.
Параметры
-
$params['app'] string
Идентификатор приложения, к которому относится CLI-контроллер.
-
$params['class'] string
Имя класса CLI-контроллера.
-
$params['exists'] bool
Флаг, означающий существование указанного класса.
Пример кода обработчика
if (!$params['exists']) { waLog::log(sprintf_wp('Execution of non-existent CLI class %s of %s app was attempted.', $params['class'], $params['app']), 'debug.log'); }
mail_send.after
Срабатывает после отправки email-сообщения классом waMail.
Параметры
-
$params['message'] Swift_Mime_Message
Объект email-сообщения.
-
$params['result'] int
Количество отправленных сообщений с учётом всех указанных адресатов.
-
$params['exception'] string
Текст зарегистрированного исключения.
Пример кода обработчика
waLog::log(sprintf_wp('Email message has been sent to %s.', implode(', ', array_keys($params['message']->getTo()))), 'myhandler.log');
mail_send.before
Срабатывает перед отправкой email-сообщения классом waMail.
Параметры
-
$params['message'] Swift_Mime_Message
Объект email-сообщения.
Пример кода обработчика
waLog::log(sprintf_wp('Attempting to send email message to %s...', implode(', ', array_keys($params['message']->getTo()))), 'myhandler.log');
signup
Срабатывает после регистрации нового посетителя сайта.
Параметры
-
$contact waContact
Новый зарегистрированный контакт с заполненным полем 'password'.
Пример кода обработчика
waLog::log(sprintf_wp('Contact %s has just signed up.', $contact->getName()), 'myhandler.log');
sms_send.after
Срабатывает после отправки SMS-сообщения классом waSMS.
Параметры
-
$params['to'] int
Номер телефона получателя.
-
$params['text'] string
Текст сообщения.
-
$params['from'] string
Обозначение отправителя.
-
$params['adapter'] waSMS
Экземпляр класса SMS-плагина, используемого для отправки сообщения.
-
$params['result'] bool
Флаг, означающий успешную отправку сообщения.
Пример кода обработчика
if (empty($params['result'])) { waLog::log(sprintf_wp('SMS message could not be sent to %s by %s class.', $params['to'], get_class($params['adapter'])), 'myhandler.log'); }
sms_send.before
Срабатывает перед отправкой SMS-сообщения классом waSMS.
Параметры
-
$params['to'] int
Номер телефона получателя.
-
$params['text'] string
Текст сообщения.
-
$params['from'] string
Обозначение отправителя.
-
$params['adapter'] waSMS
Экземпляр класса SMS-плагина, используемого для отправки сообщения.
Пример кода обработчика
waLog::log(sprintf_wp('Attempting to send SMS message to %s by %s class.', $params['to'], get_class($params['adapter'])), 'myhandler.log');
view_helper_call
Срабатывает при попытке вызвать несуществующий метод хелпера шаблона.
Параметры
-
$params['name'] string
Наименование метода хелпера.
-
$params[arguments'] array
Массив параметров, переданных при вызове метода.
Возвращаемое значение
Произвольное непустое значение, которое необходимо вернуть в шаблон.
Пример кода обработчика
return sprintf_wp('Registered call of an unknown method with parameters "%s"', var_export($params, true));
view_helper_read
Срабатывает при попытке получить значение несуществующего свойства хелпера шаблона.
Параметры
-
$params['name'] string
Наименование свойства хелпера.
Возвращаемое значение
Произвольное непустое значение, которое необходимо вернуть в шаблон.
Пример кода обработчика
return sprintf_wp('Registered attempt to read unknown property "%s"', $params['name']);
view_page
Срабатывает при выполнении метода хелпера шаблона {$wa->app_id->page()}
.
Параметры
-
$page array
Свойства страницы приложения.
Пример кода обработчика
public function viewPage(&$page) { $page['content'] = preg_replace('~\s+~', ' ', $page['content']); }
view_pages
Срабатывает при выполнении метода хелпера шаблона {$wa->app_id->pages()}
.
Параметры
-
$pages array
Свойства страниц приложения.
Пример кода обработчика
public function viewPages(&$pages) { array_walk($pages, function(&$page) { $page['title'] = preg_replace('~\s+~', ' ', $page['title']); }); }
waid_auth
Срабатывает после авторизации пользователя в панели управления с Webasyst ID. Позволяет перенаправить пользователя на указанный URL или показать сообщение об ошибке.
Параметры
-
$params['type'] string
Фиксированное значение 'backend'.
-
$params['dispatch'] array
Значения из раскодированного GET-параметра
'dispatch'
.
Возвращаемое значение
Для режима интерфейса 1.3
Вариант 1
Массив вида
[ 'header_top' => '...', // содержимое в верхней части страницы 'header_middle' => '...', // содержимое под главным меню 'header_bottom' => '...', // содержимое над основной частью страницы ]
Вариант 2
Строковое значение, используемое в качестве дополнительного содержимого под главным меню (только для режима интерфейса 1.3).
Для режима интерфейса 2.0
Массив вида
[ 'header_top' => '...', // содержимое в верхней части страницы 'notification' => '...', // содержимое рядом с иконкой уведомлений 'user_area' => [ // содержимое в главном меню 'main' => '...', // основное 'aux' => '...', // вспомогательное ], ]
Пример кода обработчика
if ($params['current_app'] == 'myapp') { return [ 'header_top' => myappHelper::getTopBannerHtml(), ]; }
backend_login
Срабатывает после авторизации пользователя в панели управления.
Параметры
-
$params['redirect_url'] string
URL, на который должен быть перенаправлен пользователь после авторизации.
Возвращаемое значение
Массив вида
[ 'redirect_url' => '...', // Новый URL, на который должен быть перенаправлен пользователь после авторизации ]
Пример кода обработчика
if (myappHelper::checkRedirectUrl($params['redirect_url'])) { return [ 'redirect_url' => 'myapp/redirect/', ]; }