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

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


bitrix_comments:faq:review_button

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
bitrix_comments:faq:review_button [15/01/2026 09:53] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1bitrix_comments:faq:review_button [30/03/2026 14:15] (текущий) – старая версия восстановлена (29/03/2026 12:17) admin
Строка 1: Строка 1:
 +===== Не работает кнопка «Оставить отзыв», слетают стили, отзывы не обновляются =====
 +
 +
 +**Описание проблемы**
 +
 +При установке модуля «Универсальные отзывы, комментарии и рейтинги» на некоторых проектах наблюдаются следующие ошибки:
 +  * Слетают стили модуля при обновлении страницы
 +  * Кнопка «Оставить отзыв» не работает
 +  * Отзывы не отображаются сразу после добавления
 +
 +**Причина**
 +
 +Чаще всего проблема возникает из-за подключения компонентов модуля в кешируемой области шаблона другого компонента.
 +
 +Для оформления и реализации front-end логики компонента, в его шаблоне доступны не обязательные файлы
 +  * style.css, который определяет стили, необходимые данному шаблону
 +  * script.js, который определяет и подключает скрипты, необходимые данному шаблону.
 +
 +Эти файлы подключаются при исполнении кода компонента. Однако, если вызов одного компонента находится внутри другого, при отработке кеша вложенный компонент не вызывается, а значит его скрипты и стили не подключаются на странице.
 +
 +Для компонентов нашего модуля это приводит к следующему:
 +  * Не подключаются скрипты и стили
 +  * Отзывы и комментарии кешируются
 +  * Новые отзывы не отображаются без сброса кеша
 +
 +**Решение**
 +
 +  * Вариант 1. (Не рекомендуется) Отключить кеш родительского компонента. Такой подход решает проблему, но ухудшает производительность страницы
 +  * Вариант 2. Вынести вызов компонента из кешируемой области шаблона в файл component_epilog.php родительского компонента. Этот вариант самый простой, но может не подойти в конкретном случае из-за несоответствия верстке.
 +  * Вариант 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>
 +
 +**Итог**
 +
 +Для корректной работы компонента нужно учитывать особенности кеширования Битрикс
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki