две разных 404 страницы для Modx Evo
Всем привет!
У нас есть двуязычный сайт на MODX Evo и хотелось бы сделать две 404 страницы на разных языках. Для русской версии — на русском, на английской — английскую.
Программист упирается рогами и говорит, что нельзя обработать событие OnPageNotFound
так как нам хочется.
Я — еще не писал плагины, но меня вдохновила статья
но написав кусочек кода
Плиз, хелп ми =/
P.S. на сайте стоит также evoBabel версии 0.21 и там происходит следующее:
================
UPDATE
Я тут выяснил, что плагин у нас просто для красоты стоит, в качестве недовыпиленного легаси.
И мультиязычность якобы реализована средствами modx (то есть все-все ручками делается)
У нас есть двуязычный сайт на MODX Evo и хотелось бы сделать две 404 страницы на разных языках. Для русской версии — на русском, на английской — английскую.
Программист упирается рогами и говорит, что нельзя обработать событие OnPageNotFound
так как нам хочется.
Я — еще не писал плагины, но меня вдохновила статья
но написав кусочек кода
<?php
if ($modx->event->name != 'OnPageNotFound') {return false;}
echo '<pre>';
print_r($_REQUEST);
print_r($_SERVER);
die; и назначив плагину соответствующее событие OnPageNotFound, пытаясь открыть несуществующий адрес на сайте, я не заметил разницы.Плиз, хелп ми =/
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 (то есть все-все ручками делается)
Комментарии: 4
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Откройте модуль лексикона и настройте параметры для каждой версии.
Однако выяснилось, что у нас плагин этот не работает.
И значит вопрос открыт — почему-то никаким образом не обрабатывается событие OnPageNotFound
Если вдруг возникнут сложности — обращайтесь. Помогу.