Как исправить баг в кеше после обновления проекта?
Обновил проект на MODX Revolution 2.3.3 traditional-> 2.7.1 traditional (ядро и плагины).
Для магазина используется пакет miniShop2.
При открытии каталога (/catalog/ или /catalog/{slug}/) выдает ошибку в файле кеша cache/includes/elements/modsnippet/20.include.cache.php в строке 452:
Для магазина используется пакет 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);
Может кто сталкивался с такой проблемой? Как исправить? В чем может быть проблема? Комментарии: 8
А mSearch2, pdoTools, minishop2 обновили до последних версий? И какая версия php?
mSearch2, pdoTools, minishop2 — обновил до последней весрии.
php 7.2
php 7.2
Сам кеш полностью из папки /core/cache/ удалили после обновлений? Также в последних версиях mSearch2 и minishop2 чанки переведены на Fenom, попробуйте проверить работоспособность на дефолтных чанках.
Кеш чистил. А можно подробнее по второму предложению? я просто modx только недавно начал изучать…
При обновлении компонента, есть окно в котором можно выбрать перезапись чанков, это обновит все стандартные чанки. Можно сделать бекап и переустановить компоненты.
В вызове сниппета mFilter2 убрать параметры которые относятся шаблонизации, типа tplOuter, tpls, тогда будут подключены дефолтные чанки. Для примера старый чанк оформления фильтра слайдера:
Новый чанк:
Т.е. если на чанках по умолчанию всё заработает, переносите их в своё оформление страницы и всё.
В вызове сниппета 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>
Т.е. если на чанках по умолчанию всё заработает, переносите их в своё оформление страницы и всё.
Переустанавливал компонент и перезаписывал чанки в процессе, но результата не принесло.
Убирание параметров, типа tplOuter, tpl, tplFilter, tplFirst к результату не приводят, в лучшем случае полностью пустая страница открывается и кешируется, благо что этих страниц пруд пруди.
Вот такой чанк у меня используются (значения параметров скрыл):
actionUrl — на что-то влияет? я пробовал var_dump();exit;'ом вывести из файла, указанного в значении параметра, но ничего не происходило.
Или все равно все сводится к изменению оформления кода?
Можете подсказать ресурс где можно правильно подобрать нужное оформление для перехода?
К примеру, мне непонятно как переоформить данный код:
Убирание параметров, типа 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=``]]
Судя по тому что сниппет имеет название — mFilter2.catalog, и по дефолту не имеет параметров — actionUrl, defaultFilters, это модифицированная копия сниппета mFilter2, могу лишь посоветовать делать вызов стандартного сниппета, и приводить его к нужному вам виду и функционалу следуя документации — mFilter2.
Например так:
Документация по Fenom:
https://github.com/fenom-template/fenom/tree/master/docs/ru
https://docs.modx.pro/komponentyi/pdotools/parser#Шаблонизатор-Fenom
К примеру, мне непонятно как переоформить данный код:
[[+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
А можно как-то продебажить выполнение mFilter2.catalog?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.