Skip to content

Commit

Permalink
forward_merge_excludes usage - another good example has been added (#522
Browse files Browse the repository at this point in the history
)

* Update forward_merge_excludes.md

examplee

* Update forward_merge_excludes.md

example has been added

* Update modx.sendforward.md

another use case has been added

* Update modx.sendforward.md

another example has been added

* Update forward_merge_excludes.md

header fix

* Update modx.sendforward.md

syntax fix

* Update forward_merge_excludes.md

fix

* Update modx.sendforward.md

syntax fix

* Update forward_merge_excludes.md

syntax fix

* Update modx.sendforward.md

syntax fix

* Update modx.sendforward.md

double comma has been fixed
  • Loading branch information
ant-tar authored Jun 24, 2024
1 parent 718e60b commit b19000b
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 3 deletions.
15 changes: 15 additions & 0 deletions en/building-sites/settings/forward_merge_excludes.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,18 @@ description: "A Symlink merges non-empty field values over the values in the tar
**Available In**: Revolution 2.0.8+

A Symlink merges non-empty field values over the values in the target Resource; using this comma-delimited list of excludes prevents specified fields from being overridden by the Symlink.

It can also be overridden f.e. by calling `sendForward()` method, check appropriate link below for more detail.

``` php
$options = array(
'merge' => 1, // field gluing mechanism enabled
// original fields list that need to be excluded from the result
'forward_merge_excludes' => 'id,template,type,published,class_key'
);
$modx->sendForward(15, $options);
```

## See also

- [modX.sendForward](extending-modx/modx-class/reference/modx.sendforward)
18 changes: 17 additions & 1 deletion en/extending-modx/modx-class/reference/modx.sendforward.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ void sendForward (integer $id, [string|array $options = null], [boolean $sendErr
- `merge`: a way to merge the resource currently in `$modx->resource` with the target resource. The `content`, `pub_date`, `unpub_date`, `richtext`, `_content` and `_processed` values are excluded as well as the value of the [forward_merge_excludes](building-sites/settings/forward_merge_excludes) system setting. I'm not sure if this is supposed to be used out of the core and there's probably better ways to get data combined (eg: `setPlaceholder`) then merging.
- `$sendErrorPage` Whether we should skip the [sendErrorPage](extending-modx/modx-class/reference/modx.senderrorpage "modX.sendErrorPage") if the resource does not exist.

## Example
## Examples

Send the user to Resource ID 234 without actually changing the URL.

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

Show replacement page, keeping original `pagetitle`, `introtext` and other fields. To do this, you just need to specify an additional array with keys:

``` php
$options = array(
'merge' => 1, // field gluing mechanism enabled
// original fields list that need to be excluded from the result
'forward_merge_excludes' => 'id,template,type,published,class_key'
);
$this->sendForward(15, $options);
```

[forward_merge_excludes](building-sites/settings/forward_merge_excludes) setting manages source page fields that need to be excluded from the results. Next fields will definitely be added as well: `content,pub_date,unpub_date,richtext`

This is good approach if you want hide/protect some resources but left `pagetitle` and `description` for visitors and search crawlers.

## See Also

- [modX](extending-modx/core-model/modx "modX")
Expand All @@ -55,3 +70,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)
16 changes: 15 additions & 1 deletion ru/building-sites/settings/forward_merge_excludes.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,18 @@ description: "Симлинк объединяет непустые значен
- **По умолчанию**: type,published,class\_key
- **Доступно в**: Revolution 2.0.8+

Симлинк объединяет непустые значения полей со значениями в целевом Ресурсе. Использование этого списка исключений, разделенных запятыми, предотвращает переопределение Симлинком указанных полей.
Симлинк объединяет непустые значения полей со значениями в целевом Ресурсе. Использование этого списка исключений, разделенных запятыми, предотвращает переопределение Симлинком указанных полей.
Что интересно, список также может быть также переопределен, например, через вызов метода `sendForward()` смотри соответствующую ссылку ниже.

``` php
$options = array(
'merge' => 1, // Включает механизм склейки полей
// список оригинальных полей, которые нужно исключить из результата
'forward_merge_excludes' => 'id,template,type,published,class_key'
);
$modx->sendForward(15, $options);
```

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

- [modX.sendForward](extending-modx/modx-class/reference/modx.sendforward)
19 changes: 18 additions & 1 deletion ru/extending-modx/modx-class/reference/modx.sendforward.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ 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.

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

Выдайте заменяющую страницу, сохранив оригинальные `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 +72,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 b19000b

Please sign in to comment.