воскресенье, 16 ноября 2014 г.

Битрикс. Компонент iblock.vote и кеширование.

Задача: написать модуль для внутреннего использования, который показывал бы список отзывов и позволял добавлять отзывы. Нет, это не очередной велосипед, просто там были свои специфические требования. Но сейчас мы говорим не про это.
При добавлении отзыва надо было давать возможность выставить оценку элементу каталога, для которого писался отзыв. Компонент iblock.vote вполне для этого подходил, только был чуток переписан, чтобы оценка добавлялась не при клике, а уже при добавлении отзыва.

Сами понимаете, что страница элемента каталога (использовался комплексный компонент) кешируется. Компонент добавления отзыва тоже. Итого, включённый в шаблон компонента добавления отзыва компонент iblock.vote - не работал нормально.

В процессе археологических раскопок было выяснено следующее:
1. при очищенном кеше компонент работает
2. при кешированной странице не подключаются стили и скрипты из шаблона компонента.

Из второго пункта было понятно, что нам надо было попробовать включать стили и скрипты отдельно. Включаем мы их в шаблоне catalog.element, причём в component_epilog.php

<?$APPLICATION->SetAdditionalCSS('path_to_template/style.css');?>
<?$APPLICATION->AddHeadScript('path_to_template/script.js');?>


Всё работает, можно танцевать.