Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 140 комментариев

Futuris
Futuris
Для начинающих кодеров, типа меня, стоит упомянуть, чтобы в чанке tpl.inCart.btn в ссылке
<a href="[[~27]]">
поставили ID своей корозины. Не сразу доходит, почему ссылка не работает.))
Dan
Dan
То, про что вы говорите, не требует PHP вообще. Это чистый js в 3 строчки. Мое решение позволяет видеть какой товар есть в корзине и в каком количестве на любой странице сайта, и в то же время позволяет удалять товар из корзины, не находясь на ее странице.
Наумов Алексей
Наумов Алексей
Чет я не понял.

410 код — это не редирект, это код ответа.

Если ты делаешь редирект, то минимальный пример это
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newdir/newpage.htm");
exit();
как видишь, есть Location, но нет тела страницы (html кода считай)

а если мы 404 хотим показывать, то мы отдаем
header("HTTP/1.1 404 Not Found");
и html код страницы. Браузер её покажет, просто будет код 404, который роботы и увидят.

А ты пытаешься сделать редирект и передать в него код 410.
Это не верно!
Тебе нужно в плагине сделать так:

$modx->sendForward(123, 'HTTP/1.1 410 Gone');
где 123 — это id страницы, в тексте которой будет написано «Страницы нет, код 410».
Роман
Роман
Да, но такое ощущение что до ридеректа как и до плагина с его OnPageNotFound дело не доходит когда срабатывает системная настройка 404

$requestedUrl = $modx->context->getOption('request_uri');
if ($requestedUrl === '/page') {
    $modx->sendRedirect($modx->makeUrl(173), 'HTTP/1.1 410 Gone');
    exit();
}
Роман
Роман
Спасибо, но не работает это. Я тоже так подумал, но для MODX REVO несуществующий URL например /page это сразу кидает на 404 и все, на этом приехали. А мне надо этот URL отпhавить на 410 страницу, но я не могу обойти 404 страницу, и сам плагин на OnPageNotFound не работает, кидает на 404 страницу согласно настройкам в system