События
OnZoomxInit
Это событие срабатывает при инициализации компонента ZoomX. Может использоваться для инициализации необходимых объектов. Например, плагинов Smarty.
OnBeforeRouteProcess
Срабатывает перед выполнением обработчика маршрута. В нем можно выполнить определённые проверки и изменить стандартное поведение. В плагине будут доступны 2 переменных:
(string)
$uri -текущий URI роута.(Zoomx\Routing\Router)
$router - объект маршрутизатора (роутера), который содержит данные маршрута. С помощью его методаgetRouteVars()
можно получить переменные роута (маршрута), указанные в масках. МетодsetRouteVars()
сохраняет переменные роута для дальнейшего использования.
На самом деле эти переменные хранятся в массиве properties
и доступ к ним возможен через одноименные ключи - properties['uri']
и properties['router']
.
Например, можно взять из роута id объекта (ресурса, пользователя и т.д) и в плагине получить соответствущий объект. Таким образом в методе контроллера будет уже не id, а готовый объект.
<?php Namespace Site\Plugins; class Plugin extends \Zoomx\Elements\Plugin { public static $events = [ 'OnBeforeRouteProcess' => 0, ]; public function OnBeforeRouteProcess($properties) { // Распаковываем массив в переменные $uri и $router. extract($properties); // Получаем переменные маршрута $vars = $router->getRouteVars(); // Получаем объект пользователя по полученному id $vars['user'] = $this->modx->getObject('modUser', (int)$vars['user']); // Сохраняем новые данные $router->setRouteVars($vars); } }
В роуте вы вместо id получите объект пользователя.
$router->get('users/{user:\d+}', function($user) { // $user - объект пользователя return viewx('user.tpl', ['user' => $user]); });
OnRequestError
Срабатывает когда вызвана функция abortx
или возникла ошибка PHP. Позволяет настроить дополнительный контроль за сайтом. Например, если возникнет 500-я ошибка, отправить уведомление администратору.
Переменные плагина:
(string)
$error_type - класс объекта ошибки или исключения.(string)
$error_code - код ошибки.(string)
$error_pagetitle - строка для отображения на сайте.(string)
$error_message - описание ошибки.(Exception|Error)
$e - объект ошибки.