Инструменты пользователя

Инструменты сайта


bitrix_comments:faq:review_button

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
bitrix_comments:faq:review_button [16/01/2026 12:06] adminbitrix_comments:faq:review_button [30/03/2026 14:15] (текущий) – старая версия восстановлена (29/03/2026 12:17) admin
Строка 11: Строка 11:
 **Причина** **Причина**
  
-Чаще всего проблема возникает из-за некорректного подключения компонентов модуля в кешируемой области шаблона.+Чаще всего проблема возникает из-за подключения компонентов модуля в кешируемой области шаблона другого компонента.
  
-В Bitrix **нельзя вызывать любые компоненты в кешируемой области**. При таком подключении:+Для оформления и реализации front-end логики компонента, в его шаблоне доступны не обязательные файлы 
 +  * style.css, который определяет стили, необходимые данному шаблону 
 +  * script.js, который определяет и подключает скрипты, необходимые данному шаблону. 
 + 
 +Эти файлы подключаются при исполнении кода компонента. Однако, если вызов одного компонента находится внутри другого, при отработке кеша вложенный компонент не вызывается, а значит его скрипты и стили не подключаются на странице
 + 
 +Для компонентов нашего модуля это приводит к следующему:
   * Не подключаются скрипты и стили   * Не подключаются скрипты и стили
   * Отзывы и комментарии кешируются   * Отзывы и комментарии кешируются
Строка 20: Строка 26:
 **Решение** **Решение**
  
-  * Вариант 1. Вынести вызов компонента из кешируемой области шаблона в файл component_epilog.php   +  * Вариант 1. (Не рекомендуется) Отключить кеш родительского компонента. Такой подход решает проблему, но ухудшает производительность страницы 
-    👉 Пример, как это сделать[[https://gdecider.github.io/articles-bx-inner-component.html|gdecider.github.io/articles-bx-inner-component.html]] +  * Вариант 2. Вынести вызов компонента из кешируемой области шаблона в файл component_epilog.php родительского компонента. Этот вариант самый простойно может не подойти в конкретном случае из-за несоответствия верстке. 
-  * Вариант 2Если позволяет вёрстка, вынести вызов в element.php комплексного компонента catalog. +  * Вариант 3. Буфферизация вывода шаблона родительского компонента с последующей заменой контента. Подробнее [[https://gdecider.github.io/articles-bx-inner-component.html|gdecider.github.io/articles-bx-inner-component.html]] 
-  * (Не рекомендуется) Ручной сброс кеша страницы или каталога. Такой вариант используется как временное решение. Не устраняет первопричину. +  * Вариант 4Подходит только для комплексных компонентов. Вынести вызов компонента отзывов в из конкретного компонента в шаблон страницы. Например, для товара в каталоге нужно вынести вызов компонента комментариев из шаблона компонента catalog.element в файл в element.php шаблона комплексного компонента catalogПодробный пример можно найти [[complex_components|в статье]] 
 +  * Вариант 5. В вызов компонента комментариев добавить четвертым параметром переменную $componentПример: 
 +<code php> 
 +$APPLICATION->IncludeComponent('chililab:page.reviews.list', '', [], $component); 
 +</code>
  
 **Итог** **Итог**
  
-  * Компонент модуля должен вызываться вне кешируемой области +Для корректной работы компонента нужно учитывать особенности кеширования Битрикс 
-  * Лучше всего выносить в component_epilog.php +
-  * При необходимости провести тесты на BitrixLabs+
  
bitrix_comments/faq/review_button.1768554402.txt.gz · Последнее изменение: admin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki