Чтобы обновить цену на товар нужно сбросить кэш?

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

Вот так выводим цены в чанке:
<span class="price-product" itemprop="price"> {$price} </span><span class="price-product">руб.</span>


Как то можно сделать {$price} некэшируемым?
Или нужно оборачивать в еще один чанк?

Кто как делает?
gerasechkin
16 августа 2017, 10:48
modx.pro
1 074
0

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

gerasechkin
16 августа 2017, 13:52
0
Хотел добавить:
Вроде как конструкция:
[[!+price]]
должна помочь, но не работает.
    Володя
    16 августа 2017, 14:03
    0
    После загрузки прайсов

    после грохнуть кеш…
      gerasechkin
      16 августа 2017, 14:08
      0
      Так и делаю, хотелось оптимизировать работу с кэшем.
      Неужели все сбрасывают кэш при изменении цены на 1 товар?
        Володя
        16 августа 2017, 14:27
        0
        Неужели все сбрасывают кэш при изменении цены на 1 товар?
        возможные варианты:
        — грохать весь кеш
        — грохать кеш конкретного обновляемого ресурса
          gerasechkin
          16 августа 2017, 14:33
          0
          Вариант с некешированным плейсхолдером на Fenom как нибудь можно реализовать?
            Володя
            16 августа 2017, 14:49
            0
            Вариант с некешированным плейсхолдером на Fenom как нибудь можно реализовать?
            да вы смотрите как у вас вызван сам сниппет…
              gerasechkin
              16 августа 2017, 15:00
              0
              Все просто, только не снипет, а чанк.
              {include 'msProduct_content'}
              как я понимаю, самым подходящим решением будет: обернуть часть HTML в инлайн чанк?
              Можно ли инлайн чанк сделать некешируемым?
      gerasechkin
      16 августа 2017, 17:20
      0
      Ради эксперимента:
      Пишу в отдельный кэш свой маленький снипет, который выводит цену:
      {set $option=['xPDO::OPT_CACHE_KEY' => 'price']}
        	{if !$price = $_modx->cacheManager->get($_modx->resource.id,$option)}
      		{set $price = $_modx->runSnippet('GetPrice.1', ['tpl' => 'tpl.Price','showLog' => 0])}
      	        {set $null = $_modx->cacheManager->set($_modx->resource.id, $price, 86400, $option)}
      	{/if}
      {$price}
      Все хорошо, но хочу чтобы он писался в отдельную директорию, чтобы после загрузки прайсов можно было почистить эту директорию ну или переформировать этот кэш после загрузки.

      Не работает вот это:
      {set $option=['xPDO::OPT_CACHE_KEY' => 'price']}
      на php выглядит вот так:
      $options = array(  xPDO::OPT_CACHE_KEY => 'users_data',);
      Просто ради интереса хочу реализовать на Fenom.

        Володя
        16 августа 2017, 17:29
        0
        к чему такие сложности?
        сделайте все в сниппете и просто его вызывайте.
          Володя
          16 августа 2017, 17:32
          0
          joxi.ru/8An3qWgtj9Zodr
          а у вас
          'xPDO::OPT_CACHE_KEY'
          gerasechkin
          16 августа 2017, 17:32
          0
          Хочется управлять кэшем, не более. =)
          Как в синтаксисе fenom обратиться к
          xPDO::OPT_CACHE_KEY
          ?
          Все уже перепробовал, не получается.
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            12