Метод 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 для посетителей и поисковиков.