Обсуждение данной темы меня привели к некоторым умозаключениям.
Но давайте по порядку, и так, задача: Имеем стандартный компонент и какую-то логику, которая зависит от кеша компонента либо кеширование мешает реализовать данную логику (Пример, тема форума выше). Необходимо менять идентификатор кеша в зависимости от своего параметра и при этом желательно не модифицировать сам компонент.
За все время работы с битриксом, я часто кастомизировал компонент, только из-за того, чтобы добавить какой-нибудь ключ в идентификатор кеша компонента.
А сегодня (не знаю почему не задумался об этом раньше) вдруг подумал: ведь механизм автокеширования в компонентах 2.0 устроен так, что зависит от массива настроек ($arParams) вызова компонента, а это третий параметр в методе подключения компонента $APPLICATION->IncludeComponent(). Соответственно, я могу повлиять на параметры вызова компонента, следовательно я могу изменить идентификатор кеша. Для этого даже не нужно описывать дополнительный параметр в файле parameters.php, а просто добавить ключ и значение в массив параметров вызова компонента (Но при редактирование параметров компонента из публички параметры не описанные в parameters.php потрутся. Можете описать параметр в parameters.php своего шаблона, чтобы не трогать стандартный компонент.)
Интересно будет услышать мнения разработчиков и мнения битрикс-разработчиков.
P.S.: вопрос вроде очевидный, но нигде не видел подобных мыслей
Столкнулся с проблемой - а как сделать разные кеши для поддоменов? В системе один сайт, а поддомены реализованы через соответствующее дополнение.
Добавил в параметры компонента "Каталог" новое поле и соответствующий параметр в код вызова компонента <?$APPLICATION->IncludeComponent( "bitrix:catalog", "catalog_inner", array( .......... "CACHE_GROUPS" => "N",
Но кэш все равно генерируется один и тот же для разных поддоменов. Версия Битрикс - 20.0.450 Понимаю, что текущее обсуждение давно устарело, но вдруг...
Напишу решение здесь, раз нашел) Может еще кому-то пригодится, да и самому, чтобы не забыть))) В компоненте catalog.section.list, который подключается во время работы комплексного компонента catalog (у меня это файл section_horizontal.php в шаблоне комплексного компонента catalog), есть вызов
Второй параметр - массив параметров для формирования уникального ID кеша... И в нем нет никаких параметров, кроме фильтра и зависимости от группы пользователей.
Что нужно сделать (что сделал я, помимо правок компонента, указанных в предыдущем сообщении): 1. Скопировал компонент catalog.section.list в свое пространство имен 2. Добавил параметр $arParams в массив, влияющий на ID кеша
3. В файле section_horizontal.php изменил вызов компонента catalog.section.list на свой и (внимание!) добавил параметр, который получаем из комплексного компонента catalog:
4. Для большей наглядности в .parameters.php шаблона компонента catalog изменил PARENT своего параметра, чтобы добавить его в блок настроек кеширования
Группы на сайте создаются не только сотрудниками «1С-Битрикс», но и партнерами компании. Поэтому мнения участников групп могут не совпадать с позицией компании «1С-Битрикс».