Как исправить баг в кеше после обновления проекта?

Обновил проект на MODX Revolution 2.3.3 traditional-> 2.7.1 traditional (ядро и плагины).
Для магазина используется пакет miniShop2.
При открытии каталога (/catalog/ или /catalog/{slug}/) выдает ошибку в файле кеша cache/includes/elements/modsnippet/20.include.cache.php в строке 452:
Fatal error: Uncaught Error: Cannot use assign-op operators with string offsets
Начало строки 452 и далее:
$output['filters'][$filter] .= $pdoFetch->getChunk($tpl, array(
            'filter' => $filter2
        ,'table' => $table
        ,'rows' => $rows
        ,'has_active' => $has_active
        ,'delimeter' => $mSearch2->config['filter_delimeter']
        ), $fastMode);
Может кто сталкивался с такой проблемой? Как исправить? В чем может быть проблема?
Alexander
03 апреля 2019, 18:36
modx.pro
871
0

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

Андрей
03 апреля 2019, 18:40
0
А mSearch2, pdoTools, minishop2 обновили до последних версий? И какая версия php?
    Alexander
    03 апреля 2019, 20:14
    0
    mSearch2, pdoTools, minishop2 — обновил до последней весрии.
    php 7.2
      Андрей
      03 апреля 2019, 20:27
      0
      Сам кеш полностью из папки /core/cache/ удалили после обновлений? Также в последних версиях mSearch2 и minishop2 чанки переведены на Fenom, попробуйте проверить работоспособность на дефолтных чанках.
        Alexander
        04 апреля 2019, 10:12
        0
        Кеш чистил. А можно подробнее по второму предложению? я просто modx только недавно начал изучать…
          Андрей
          04 апреля 2019, 13:18
          0
          При обновлении компонента, есть окно в котором можно выбрать перезапись чанков, это обновит все стандартные чанки. Можно сделать бекап и переустановить компоненты.

          В вызове сниппета mFilter2 убрать параметры которые относятся шаблонизации, типа tplOuter, tpls, тогда будут подключены дефолтные чанки. Для примера старый чанк оформления фильтра слайдера:
          <fieldset id="mse2_[[+table]][[+delimeter]][[+filter]]">
          	<h4 class="filter_title">[[%mse2_filter_[[+table]]_[[+filter]]]]</h4>
          	<div class="mse2_number_slider"></div>
          	<div class="mse2_number_inputs">
          		[[+rows]]
          	</div>
          </fieldset>

          Новый чанк:
          <fieldset id="mse2_{$table ~ $delimeter ~ $filter}" class="mb-3">
              <h4 class="filter_title">{('mse2_filter_' ~ $table ~ '_' ~ $filter) | lexicon}</h4>
              <div class="mse2_number_slider"></div>
              <div class="mse2_number_inputs row">
                  {$rows}
              </div>
          </fieldset>

          Т.е. если на чанках по умолчанию всё заработает, переносите их в своё оформление страницы и всё.
            Alexander
            04 апреля 2019, 17:26
            0
            Переустанавливал компонент и перезаписывал чанки в процессе, но результата не принесло.
            Убирание параметров, типа tplOuter, tpl, tplFilter, tplFirst к результату не приводят, в лучшем случае полностью пустая страница открывается и кешируется, благо что этих страниц пруд пруди.

            Вот такой чанк у меня используются (значения параметров скрыл):
            [[!mFilter2.catalog? 
            		&actionUrl=`category.action.php`
            		&tplOuter=`tplOuter`
            		&tpl=`tpl`
            		&tplFirst=`tplFirst`
            		&filters=`filters`
            		[[*id:is=`2`:then=``:else=`&defaultFilters=`filters``]]
            		[[*id:is=`3`:then=`&parents=filters `:else=`&parents=filters `]]
            		&depth=`1`
            		&showLog=`0`
            		&suggestions=`1`
            		&element=`element`
            		&paginator=`paginator`
            		&limit=`limit`
            		&sort=`sort`
            		&tplFilter.outer.resource|parent=`tplFilter`
            		&tplFilter.row.resource|parent=`tplFilter`
            	]]
            Что можете сказать?
            actionUrl — на что-то влияет? я пробовал var_dump();exit;'ом вывести из файла, указанного в значении параметра, но ничего не происходило.

            Или все равно все сводится к изменению оформления кода?
            Можете подсказать ресурс где можно правильно подобрать нужное оформление для перехода?
            К примеру, мне непонятно как переоформить данный код:
            [[+thumb:default=`[[++assets_url]]path_file.png`]]
            [[*id:isnt=`3`:then=` class="no-filters"`:else=``]]
              Андрей
              04 апреля 2019, 18:46
              +1
              Судя по тому что сниппет имеет название — mFilter2.catalog, и по дефолту не имеет параметров — actionUrl, defaultFilters, это модифицированная копия сниппета mFilter2, могу лишь посоветовать делать вызов стандартного сниппета, и приводить его к нужному вам виду и функционалу следуя документации — mFilter2.

              К примеру, мне непонятно как переоформить данный код:

              [[+thumb:default=`[[++assets_url]]path_file.png`]]
              [[*id:isnt=`3`:then=` class="no-filters"`:else=``]]

              Например так:
              {$thumb ?: $_modx->config.assets_url ~ 'path_file.png'}
              {if $_modx->resource.id != 3}no-filters{/if}

              Документация по Fenom:
              https://github.com/fenom-template/fenom/tree/master/docs/ru
              https://docs.modx.pro/komponentyi/pdotools/parser#Шаблонизатор-Fenom
    Alexander
    05 апреля 2019, 15:56
    0
    А можно как-то продебажить выполнение mFilter2.catalog?
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      8