Skip to content

Commit

Permalink
Update modx.sendforward.md
Browse files Browse the repository at this point in the history
another use case has been added
  • Loading branch information
ant-tar authored Jun 23, 2024
1 parent cf283fc commit 89532e4
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions ru/extending-modx/modx-class/reference/modx.sendforward.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ void sendForward (integer $id, [string|array $options = null])
- `merge`: способ объединения ресурса, находящегося в данный момент в `$modx->resource` с целевым ресурсом. `content`, `pub_date`, `unpub_date`, `richtext`, `_content` и `_processed` значения исключаются вместе со значением системного параметра [forward_merge_excludes](building-sites/settings/forward_merge_excludes). Я не уверен, что это должно использоваться из ядра, и, вероятно, есть лучшие способы объединить данные (например, `setPlaceholder`), а затем объединить.
- `$sendErrorPage` Следует ли пропустить выполнение [sendErrorPage](extending-modx/modx-class/reference/modx.senderrorpage "modX.sendErrorPage") если ресурс не существует.

## Пример
## Примеры

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

``` php
$modx->sendForward(234);
```

Отправьте пользователя на страницу ошибки 404, для фактического идентификатора страницы мы используем значение системной настройки [error_page](building-sites/settings/error_page). Если такого значения нет,
2. Отправьте пользователя на страницу ошибки 404, для фактического идентификатора страницы мы используем значение системной настройки [error_page](building-sites/settings/error_page). Если такого значения нет,
будет использовано значение переменной [site_start](building-sites/settings/site_start)

``` php
Expand All @@ -48,6 +48,21 @@ $options = array(
$this->sendForward($this->getOption('error_page', $options, $this->getOption('site_start')), $options, false);
```

3. Выдайте заменяющую страницу, сохранив оригинальные `pagetitle`, `introtext` и другие поля. Для этого нужно просто указать дополнительный массив с ключами:

``` php
$options = array(
'merge' => 1, // Включает механизм склейки полей
// список оригинальных полей, которые нужно исключить из результата
'forward_merge_excludes' => 'id,template,type,published,class_key'
);
$this->sendForward(15, $options);
```
Ключ [forward_merge_excludes](building-sites/settings/forward_merge_excludes) заведует полями исходной страницы, которые нужно исключить из результатов. К эти полям обязательно будут прибавлены еще `content,pub_date,unpub_date,richtext`

Такой способ полезен, если вы хотите закрывать какие-то разделы сайта, оставляя `pagetitle` и `description` для посетителей и поисковиков.


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

- [modX](extending-modx/core-model/modx "modX")
Expand All @@ -56,3 +71,4 @@ $this->sendForward($this->getOption('error_page', $options, $this->getOption('si
- [modX.sendErrorPage](extending-modx/modx-class/reference/modx.senderrorpage "modX.sendErrorPage")
- [modX.sendUnauthorizedPage](extending-modx/modx-class/reference/modx.sendunauthorizedpage)
- [error_page](building-sites/settings/error_page)
- [forward_merge_excludes](building-sites/settings/forward_merge_excludes)

0 comments on commit 89532e4

Please sign in to comment.