Метод sendForward() и сохранение полей ресурса
Могие знают полезный метод в MODX — sendForward('id'), который позволяет загрузить некий ресурс без изменения url. При помощи этого метода работает выдача страниц «404 не найдено» и «401 требуется авторизация».
Но немногие знают, что можно выдавать заменяющую страницу, сохранив оригинальные pagetitle, introtext и другие поля.
Не знаю, есть ли это в документации, но как следует из исходного кода метода, нужно просто указать дополнительный массив с ключами:
Ключ forward_merge_excludes заведует полями исходной страницы, которые нужно исключить из результатов.
К эти полям обязательно будут прибавлены еще:
Теперь вы можете красиво закрывать разделы сайта, оставляя pagetitle и description для посетителей и поисковиков.
Но немногие знают, что можно выдавать заменяющую страницу, сохранив оригинальные pagetitle, introtext и другие поля.
Не знаю, есть ли это в документации, но как следует из исходного кода метода, нужно просто указать дополнительный массив с ключами:
$options = array(
'merge' => 1, // Включает механизм склейки полей
// список оригинальных полей, которые нужно исключить из результата
'forward_merge_excludes' => 'id,template,type,published,class_key'
);
$modx->sendForward(15, $options);Ключ forward_merge_excludes заведует полями исходной страницы, которые нужно исключить из результатов.
К эти полям обязательно будут прибавлены еще:
content,pub_date,unpub_date,richtextТо есть, оригинальный content показать никак не получится — а иначе, зачем вообще делать forward?
Теперь вы можете красиво закрывать разделы сайта, оставляя pagetitle и description для посетителей и поисковиков.
Техническая поддержка MODX
Сайт лежит, тормозит или остался без разработчика?
Переезд с MODX 2 на 3, PHP 7 на 8, скорость и безопасность. Поддержка со сроками и ответственностью, а не совет в чате.
Подробнее
Реклама
0
Комментарии: 0