Проблема с кэшем

Здравствуйте! Ситуация следующая. У меня есть плагин, который срабатывает при инициализации fenom. В нем подключается класс MobileDetect. Собственно, в нем (плагине) я объявляю функцию, которая возвращает значение в зависимости от устройства (телефон или нет). Далее значение я запихиваю в глобальную переменную, чтобы можно было использовать во всяких проверках. Это была небольшая предыстория.
К самой проблеме
Вывожу в шаблонах каталог товара, используя сниппет msProducts КЭШИРУЕМЫМ, а чанк к нему проверяю через глобальную переменную значение которой возвращает mobileDetect. Клиенты жалуются, что иногда мобильная версия ломается. Видимо, когда-то глобальная переменная пустая. Решается данный вопрос очисткой кэша, но это не выход ведь, верно? Уже который день копаюсь и не могу понять в чем дело, может и не в кэше вовсе.
Спасибо!
Stanislavsky
06 августа 2018, 13:13
modx.pro
739
0
Поблагодарить автора Отправить деньги

Комментарии: 3

Алексей Ерохин
06 августа 2018, 13:18
0
Вынесите проверку на уровень выше — два разных вызова msProduct.
феном не будет выполнять оба.
    Stanislavsky
    06 августа 2018, 13:54
    0
    Для понимания ситуации
    {if $.config.device != 1} //1 это мобильная версия
        {set $template_product = 'tpl.product-desktop'}
        {else}
            {set $template_product = 'tpl.product-mobile'}
    {/if}
    
    {'msProducts' | snippet : [
        //параметры...
        'tpl'=>$template_product
    ]}
    Stanislavsky
    09 августа 2018, 18:51
    0
    Разобрался в чем была беда. Решением было вынести переменную, в которой хранится результат, в шаблон, и после чего передавать эту переменную в сниппет pdoResources НЕКЭШИРУЕМЫЙ.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      3