Jump to main content Jump to doc navigation

modX::sendForward

Перенаправляет запрос на другой ресурс без изменения URL. Если указанный идентификатор не существует, отправляет на страницу ошибки 404.

Синтаксис

API Doc: modX::sendForward()

void sendForward (integer $id, [string|array $options = null])
  • $id это идентификатор ресурса (вы не можете перенаправить на URL адрес - если вам нужно передать какое-то значение, используйте modX::setPlaceholder и вызовите его на целевом ресурсе).
  • $options предполагается, что это правильный код ответа HTTP, когда он является строкой, например "HTTP/1.1 301 Moved Permanently". Если это массив, вы можете использовать следующие параметры:
    • response_code: код ответа
    • error_type: тип ошибки, смотрите пример ниже, но, например, 404
    • error_header: Значение поля "Header" страницы ошибки
    • error_pagetitle: Имя заголовка страницы ошибки
    • error_message: Сообщение об ошибке
    • merge: способ объединения ресурса, находящегося в данный момент в $modx->resource с целевым ресурсом. content, pub_date, unpub_date, richtext, _content и _processed значения исключаются вместе со значением системного параметра forward_merge_excludes. Я не уверен, что это должно использоваться из ядра, и, вероятно, есть лучшие способы объединить данные (например, setPlaceholder), а затем объединить.
  • $sendErrorPage Следует ли пропустить выполнение sendErrorPage если ресурс не существует.

Пример

Отправьте пользователя на ресурс с идентификатором 234, фактически не меняя URL.

$modx->sendForward(234);

Отправьте пользователя на страницу ошибки 404, для фактического идентификатора страницы мы используем значение системной настройки error_page. Если такого значения нет, будет использовано значение переменной site_start

$options = array(
   'response_code' => '404 Страница не найдена',
   'error_type' => '404',
   'error_header' => '404 Не найдена',
   'error_pagetitle' => 'Ошибка 404: Страница не найдена',
   'error_message' => '<h1>Страница не найдена</h1><p>Запрошенная вами страница не найдена.</p>'
);
$this->sendForward($this->getOption('error_page', $options, $this->getOption('site_start')), $options, false);

Смотрите также

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

  • modmore
  • Jens Wittmann – Gestaltung & Entwicklung
  • deJaya
  • Digital Penguin
  • Following Sea
  • YJ
  • Sepia River Studios
  • Dannevang Digital
  • eydolan
  • Nick Clark
  • Lefthandmedia
  • Murray Wood
  • Richard

Budget

$217 per month—let's make that $500!

Learn more