Jump to main content Jump to doc navigation

Событие: OnManagerPageBeforeRender

Запускается в контроллере менеджера, перед оформлением контента.

Служба: 2 - Manager Access Events Группа: System

Параметры события

Имя Описание
controller Экземпляр контроллера текущей страницы менеджера.

Замечания

Предыдущее событие OnBeforeManagerPageInit
Следующее событие OnManagerPageAfterRender
File core/model/modx/modmanagercontroller.class.php
Class абстрактный класс modManagerController
Method public function render()

Пример

Такой плагин выведет в "Журнал ошибок" какой контроллер запущен:

<?php
$eventName = $modx->event->name;
switch($eventName) {
    case 'OnManagerPageBeforeRender':
        // какой контроллер загружается
        print_r($scriptProperties['controller']->config);
        print_r($scriptProperties['controller']->scriptProperties);
        break;
}

Такой плагин выведет на экран "Доступ запрещен" пользователям, у которых в системных настройках указаны id ресурсов в параметре allow_to_update:

<?php
$eventName = $modx->event->name;
switch($eventName) {
    case 'OnManagerPageBeforeRender':
        switch($scriptProperties['controller']->config['controller']){
            //Проверяем права на редактирование документов
            case 'resource/update':
                // Проверяем наличие настройки allow_to_update (задается в настройках пользователя)
                // В ней мы перечисляем, какие документы пользователю можно редактировать
                // Если настройка задана, но id документа отсутствует в перечисленных разрешенных,
                // То возвращаем ошибку доступа 
                if($allow_to_update = $modx->getOption('allow_to_update')){
                    if(!is_array($allow_to_update)){
                        $allow_to_update = explode(",", $allow_to_update);
                        $allow_to_update = array_map('trim', $allow_to_update);
                    }
                    if(in_array($scriptProperties['controller']->scriptProperties['id'], $allow_to_update)){
                        $scriptProperties['controller']->failure('Доступ запрещен');
                        return;
                    }
                }
                break;
        }
        break;
}

Такой плагин подключит нужный нам js на страницы админки:

<?php
$eventName = $modx->event->name;
switch($eventName) {
    case 'OnManagerPageBeforeRender':
        $modx->controller->addJavascript('url/file.js');
        break;
}

Смотри также

Support the team building MODX with a monthly donation.

The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.

Backers

  • modmore
  • STERC
  • Digital Penguin
  • Jens Wittmann – Gestaltung & Entwicklung
  • Fabian Christen
  • Dannevang Digital
  • Sepia River Studios
  • CrewMark
  • Chris Fickling
  • deJaya
  • Lefthandmedia
  • Murray Wood
  • eydolan
  • Following Sea
  • Anton Tarasov
  • Stéphane Jäggi
  • Raffy
  • Snow Creative
  • A. Moreno
  • Nick Clark
  • JT Skaggs
  • Helen
  • YJ
  • krisznet
  • Richard
  • Yanni

Budget

$301 per month—let's make that $500!

Learn more