Проблема с кэшем
Здравствуйте! Ситуация следующая. У меня есть плагин, который срабатывает при инициализации fenom. В нем подключается класс MobileDetect. Собственно, в нем (плагине) я объявляю функцию, которая возвращает значение в зависимости от устройства (телефон или нет). Далее значение я запихиваю в глобальную переменную, чтобы можно было использовать во всяких проверках. Это была небольшая предыстория.
К самой проблеме
Вывожу в шаблонах каталог товара, используя сниппет msProducts КЭШИРУЕМЫМ, а чанк к нему проверяю через глобальную переменную значение которой возвращает mobileDetect. Клиенты жалуются, что иногда мобильная версия ломается. Видимо, когда-то глобальная переменная пустая. Решается данный вопрос очисткой кэша, но это не выход ведь, верно? Уже который день копаюсь и не могу понять в чем дело, может и не в кэше вовсе.
Спасибо!
К самой проблеме
Вывожу в шаблонах каталог товара, используя сниппет msProducts КЭШИРУЕМЫМ, а чанк к нему проверяю через глобальную переменную значение которой возвращает mobileDetect. Клиенты жалуются, что иногда мобильная версия ломается. Видимо, когда-то глобальная переменная пустая. Решается данный вопрос очисткой кэша, но это не выход ведь, верно? Уже который день копаюсь и не могу понять в чем дело, может и не в кэше вовсе.
Спасибо!
Поблагодарить автора
Отправить деньги
Комментарии: 3
Вынесите проверку на уровень выше — два разных вызова msProduct.
феном не будет выполнять оба.
феном не будет выполнять оба.
Для понимания ситуации
{if $.config.device != 1} //1 это мобильная версия
{set $template_product = 'tpl.product-desktop'}
{else}
{set $template_product = 'tpl.product-mobile'}
{/if}
{'msProducts' | snippet : [
//параметры...
'tpl'=>$template_product
]}
Разобрался в чем была беда. Решением было вынести переменную, в которой хранится результат, в шаблон, и после чего передавать эту переменную в сниппет pdoResources НЕКЭШИРУЕМЫЙ.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.