@av230267

Как сделать так ,чтобы не кешировалась глобальная переменная в компоненте Битрикс?

Мне надо чтобы в header.php определялась глобальная переменная, и от ее значения в компоненте catalog.element template.php появлялась кнопка - ссылка или нет
у меня получается , что при изменении значения переменной в header.php, в компоненте используется ранее закешированное значение
как то возможно это обойти и использовалось свежее значение переменной ?
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 2
@koder_1
Битрикс программист
Проще всего передать в параметр компонента свой параметр, например, 'CUSTOM_SHOW_BUTTON' => 'Y' и он будет доступен в template.php в $arParams['CUSTOM_SHOW_BUTTON']
Если это нужно в component_epilog.php то передать из result_modifier.php
Есть в битриксе урок как передать переменные из result_modifier.php в component_epilog.php

Кэширование можно также обойти например, через js, или есть хитрые техники в template.php выводить **BUTTON** статично, а в component_epilog его заменять на значение.
Ответ написан
Комментировать
Во-первых, определять какие-либо глобальные переменные в header.php шаблона сайта - дурная практика. Есть обработчики событий (типа OnProlog), делайте это там.
Во-вторых, сильно подозреваю, что у Вас не значение переменной где-то кешируется и кешированным попадает в компонент (у Вас же этот компонент исполняется после header.php , верно?), а кешируется вывод компонента, то бишь его шаблон. Сделайте вывод этой глобальной переменной в component_epilog.php шаблона компонента, это должно прояснить ситуацию.
Кстати, использовать глобальные переменные для примитивов (строка, число) нежелательно, используйте свойства страницы - это те же глобальные переменные, но "по фэншую".
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы