Системные события

Содержание...
Для регистрации обработчиков системных событий используйте идентификатор приложения webasyst. Подробнее об обработке событий.

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/',
    ];
}