modX.sendForward
Последнее обновление Oct 14th, 2026 | История страницы | Улучшить эту страницу | Сообщить о проблеме
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$194 per month—let's make that $500!
Learn moremodX::sendForward¶
Перенаправляет запрос на другой ресурс без изменения URL. Если указанный идентификатор не существует, отправляет на страницу ошибки 404.
Синтаксис¶
void sendForward (integer $id, [string|array $options = null], [boolean $sendErrorPage = true])
$id(integer) Цель — идентификатор ресурса, а не URL — чтобы передать значение на целевой ресурс, установите плейсхолдер через modX.setPlaceholder и прочитайте его там.$options(string|array) Строка трактуется как код ответа HTTP, напримерHTTP/1.1 301 Moved Permanently. Массив принимает следующие ключи:response_code: код ответаerror_type: тип кода ответа, например404error_header: значение поля “Header”error_pagetitle: заголовок страницы ошибкиerror_message: сообщение об ошибкеmerge: способ объединения ресурса, находящегося в данный момент в$modx->resource, с целевым ресурсом. Значенияcontent,pub_date,unpub_date,richtext,_contentи_processedисключаются, а также значение системного параметра forward_merge_excludes.
$sendErrorPage(boolean) Пропускать ли вызов sendErrorPage, если ресурс не существует.
Примеры¶
Отправьте пользователя на ресурс с идентификатором 234, фактически не меняя URL.
$modx->sendForward(234);
Отправьте пользователя на страницу ошибки 404, для фактического идентификатора страницы мы используем значение системной настройки error_page. Если такого значения нет, будет использовано значение переменной site_start
$options = array(
'response_code' => '404 Not Found',
'error_type' => '404',
'error_header' => '404 Not Found',
'error_pagetitle' => 'Ошибка 404: Страница не найдена',
'error_message' => '<h1>Страница не найдена</h1><p>Запрошенная вами страница не найдена.</p>'
);
$modx->sendForward($modx->getOption('error_page', $options, $modx->getOption('site_start')), $options, false);
Выдайте заменяющую страницу, сохранив оригинальные pagetitle, introtext и другие поля. Для этого нужно просто указать дополнительный массив с ключами:
$options = array(
'merge' => 1, // Включает механизм склейки полей
// список оригинальных полей, которые нужно исключить из результата
'forward_merge_excludes' => 'id,template,type,published,class_key'
);
$modx->sendForward(15, $options);
Такой способ полезен, если вы хотите закрывать какие-то разделы сайта, оставляя pagetitle и description для посетителей и поисковиков.
Смотрите также¶
- modX
- modX.makeUrl
- modX.sendRedirect
- modX.sendErrorPage
- modX.sendUnauthorizedPage
- error_page
- forward_merge_excludes
Support the team building MODX with a monthly donation.
The budget raised through OpenCollective is transparent, including payouts, and any contributor can apply to be paid for their work on MODX.
Backers
Budget
$194 per month—let's make that $500!
Learn more










