две разных 404 страницы для Modx Evo

Всем привет!

У нас есть двуязычный сайт на MODX Evo и хотелось бы сделать две 404 страницы на разных языках. Для русской версии — на русском, на английской — английскую.

Программист упирается рогами и говорит, что нельзя обработать событие OnPageNotFound
так как нам хочется.

Я — еще не писал плагины, но меня вдохновила статья

но написав кусочек кода
<?php
if ($modx->event->name != 'OnPageNotFound') {return false;}

echo '<pre>';
print_r($_REQUEST);
print_r($_SERVER);
die;
и назначив плагину соответствующее событие OnPageNotFound, пытаясь открыть несуществующий адрес на сайте, я не заметил разницы.

Плиз, хелп ми =/

P.S. на сайте стоит также evoBabel версии 0.21 и там происходит следующее:
switch ($e->name) {
        case 'OnPageNotFound'://переадресация на нужную страницу 404, указать ее в модуле лексикона
            //$docid = 0;
            $docid = !empty($modx->config['error_page']) ?  $modx->config['error_page'] : $modx->config['site_start'];
            if (!isset($_SESSION['perevod'])) {
                //$docid = $modx->config['site_start'];
                $modx->sendRedirect($modx->makeUrl($docid), 0, 'REDIRECT_HEADER', 'HTTP/1.0 404 Not Found');exit();
            }
            $id = $_SESSION['perevod']['Страница не найдена'];
            $docid = (int)$id;
            if ($docid == 0) {
                $id = $_SESSION['perevod']['Главная страница'];
                $docid = (int)$id;
                if ($docid == 0) {
                    $id = $_SESSION['perevod']['Корневая папка'];
                    $docid = (int)$id;
                }
            }
            if ($docid != 0) {
                $modx->sendRedirect($modx->makeUrl($docid), 0, 'REDIRECT_HEADER', 'HTTP/1.0 404 Not Found');exit();
            }  else {
                $docid = !empty($modx->config['error_page']) ?  $modx->config['error_page'] : $modx->config['site_start'];
            }
            break ;


================

UPDATE

Я тут выяснил, что плагин у нас просто для красоты стоит, в качестве недовыпиленного легаси.
И мультиязычность якобы реализована средствами modx (то есть все-все ручками делается)
mayushi
07 февраля 2019, 21:41
modx.pro
1 040
0

Комментарии: 4

Павел Романов
08 февраля 2019, 10:57
0
В плагине же комментарий:
//переадресация на нужную страницу 404, указать ее в модуле лексикона
Откройте модуль лексикона и настройте параметры для каждой версии.
    mayushi
    08 февраля 2019, 11:18
    0
    Павел, извините, спасибо за ваш ответ.
    Однако выяснилось, что у нас плагин этот не работает.

    И значит вопрос открыт — почему-то никаким образом не обрабатывается событие OnPageNotFound
      Евгений Борисов
      08 февраля 2019, 12:14
      0
      Посмотрите порядок вызова плагинов на этом событии. Скорее всего, до нужного вам дело просто не доходит.
    Евгений Борисов
    08 февраля 2019, 12:12
    0
    Для начала нужно узнать каким образом реализована мультиязычность. На данный момент есть 2 способа которыми пользуются массы: evoBabel и bLang. И тот и другой способ позволяют реализовать задуманное. Если это не так — вопросы к разработчику — каким именно способом он реализовал мультиязычность. Но в любом случае, плагином на событии OnPageNotFound всегда можно решить вопрос.
    Если вдруг возникнут сложности — обращайтесь. Помогу.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4