Добавить component_prolog.php в компоненты

Рейтинг: 29.7696  
На голосовании
Предложил Солуянов Вадим 09.10.2013 11:25:21

Добавить component_prolog.php в компоненты

Часто возникает потребность обновить область страницы, где выводится один компонент, из шаблона другого компонента (например добавление в корзину через AJAX в каталоге требует обновления области малой корзины, добавление комментария к новости - обновления списка новостей в боковой колонке и т.п.). Отсюда и возникла идея. Если уж был в свое время добавлен component_epilog.php, то почему бы не добавить component_prolog.php, который запускался бы всегда независимо от кэша.
При его наличии мы могли бы организовывать ajax-взаимодействия компонентов на странице через шаблоны данных компонентов.
Например, в шаблоне малой корзины пишем javascript-функцию, которая вызывает текущую страницу с определенным параметром; в component_prolog.php проверяем наличие в запросе данного параметра и, если установлен, делаем $APPLICATION->RestartBuffer(); в component_epilog.php, соответственно, при установленном параметре делаем exit;
В шаблонах компонентов, где происходит ajax-добавление в корзину, проверяем наличие упомянутой выше javascript-функции и дергаем ее, если есть.
Дешево и сердито.

Рейтинг: 6.9462  
Солуянов Вадим 09.10.2013 12:05:35
Совсем упустил из вида: в component_prolog.php надо иметь возможность изменять массив $arParams (например, чтобы повлиять на ID кэша).
Рейтинг: 1  
Шерлок Холмс 10.10.2013 23:43:30