Вывод старого шаблона на второй и т.д. страницах

ВК
ВК
1,3K
7
Содержание:
  1. Комментарии
Уважаемые эксперты,

На сайте установлен minishop2.
На странице списка товаров осуществляется вызов mFilter2, см код ниже.
После недавнего обновления кода чанка mfilter_outer.tpl (добавил вызов нового чанка {include 'fast_filter'}), и также чанка product_tpl.tpl (добавил html и скрипт смены картинки товара при собитии hover), тем не менее, теперь при переходе кроме первой на 2-ю и следующие страницы в блоке пагинации, выводится старый шаблон без изменений в чанках mfilter_outer.tpl и product_tpl.tpl.

Для примера, Первая страница загрузится в новом виде, а последующие вызовом из блока пагинации внизу в старом.

При принудительной перезагрузке текущей страницы 2-ой и далее шаблон обновляется. И при запросе кода текущей страницы в браузере, показывается новый шаблон.

При каждом новом заходе на страницу и последующей пагинации ситуация повторяется.

Как положено, обновил кеш сайта в админке, также стер папку core/cash.
В браузере также очистил кеш.
Нулевой свежеустановленный браузер (без кеша) также выводит страницу со старым шаблоном, и обновляет только при принудительной перезагрузке.

Подскажите, где еще мог записаться в кеш код старого шаблона и как его обновить.

Похоже что дело в подгрузке шаблона ajax, тогда есть ли возможность отключить его совсем в mFilter2 и попробовать пагинацию без него. Непосредственного аналога параметра ajax как в pdoPage не обнаружил в mFilter2.

Ниже код вызова mFilter2 в шаблоне.

Вызов mFilter2 в шаблоне

{$_modx->runSnippet('!mFilter2', [
				'element' => 'msProducts',
				'class' => 'msProduct',
				'where' => ['wear_type="оправа"'] ,
				'showEmptyFilters' => 1,
				'parents' => '8,-3199',
				'sort'=> 'ms|new:desc,resource|createdon:desc,resource|pagetitle:asc',
				'limit' => 48,
				'pageLimit'=> 10,
				'tplOuter' => '@FILE chunks/mfilter_outer.tpl',
				'tplPageWrapper' => '@INLINE <ul class="pagination">{$prev}{$pages}{$next}</ul>',
				'tplPageActive' => '@INLINE <li class="page-item"><span class="page-link page-link-active" >{$pageNo}</span></li>',
				'tplPage' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">{$pageNo}</a></li>',
				'tplPagePrev' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">«</a></li>',
				'tplPageNext' => '@INLINE <li class="page-item"><a class="page-link" href="{$href}">»</a></li>',
				'tplPagePrevEmpty' => '@INLINE <li class="page-item"><span class="page-link page-link-empty">«</span></li>',
				'tplPageNextEmpty' => '@INLINE <li class="page-item"><a href="" class="page-link page-link-empty">»</a></li>',
				'filters' => 'ms|vendor:vendors,
							ms|gender,
							ms|wear_type,
							ms|material,
							ms|frame_form,
							ms|construct,
							ms|size_front,
							ms|size_bridge,
							ms|size_temple,
							ms|price:number' ,
				'aliases' => 'ms|price==price' ,
				'ajaxMode' => 'default',
				'filterOptions' => '{
						"more_tpl": "<div class=\"text-center\"><button class=\"btn btn-blue btn-rounded btn_more\">Загрузить еще</button></div>"
						}',
				'tpls' => '@FILE chunks/product_tpl.tpl',
				'tplFilter.outer.default' => '@FILE chunks/filter_outer.tpl',
				'tplFilter.row.default' => '@FILE chunks/filter_row.tpl',
				'tplFilter.outer.price' => '@FILE chunks/filter_outer_price.tpl',
				'tplFilter.row.price' => '@FILE chunks/filter_row_price.tpl'
			])}
Спасибо.

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

  1. ВК
    ВК
    2020-10-25 10:40:52
    Спасибо обновил, но не поменялось. Кеш, конечно, везде почистил.
    Подскажите, если при загрузке следующих страниц принудительно из адресной строки, например,

    все обновляется нормально, то если дело в ajax, то как снять поддержку ajax в pdoPage, я пробую принудительно прописать обработчик пагинации со своими пользовательским набором параметров в вызове mFilter2:
    'paginator' => 'pdoPage@pagenav_noajax'
    где в наборе параметров указано: параметр ajax, значение 0.
    Но похоже, что по прежнему в пагинации используется ajax.

    Большое спасибо за помощь.
  1. Александр Мальцев
    Александр Мальцев
    2020-10-25 13:53:00
    В mFilter2 нет параметра для отключения режима AJAX. Чтобы это сделать нужно внести изменения в js файл этого компонента. Он находятся по умолчанию в этом месте: «\assets\components\msearch2\js\web\default.js».
    В нём нужно найти следующий код и закомментировать в нём последнюю строчку:
    $(document).on('click', this.options.pagination_link, function () {
      ...
      //return false;
    });
  • ВК
    ВК
    2020-10-25 14:20:35
    Теперь без ajax все работает нормально, большое спасибо.

    Однако причина недоработки ajax непонятна. Дело, видимо, не в кеше ModX. Возможно есть еще какой-то кеш Fenoma который не удаляется?

    Интересно, что при замене в коде вызываемого в mFilter2 шаблона mfilter_outer.tpl
    {include 'file:chunks/fast_filter.tpl'})
    на непосредственный код чанка
    <div style="top:0;left:0;width:100%;position:relative;float:left;clear:both;text-align:justify;padding-bottom:30px;padding-left:30px;padding-right:30px;">
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|gender=женский" style="font-size:18px;font-weight:bold;">ЖЕНСКИЕ</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|gender=мужской" style="font-size:18px;font-weight:bold;">МУЖСКИЕ</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|gender=юнисекс" style="font-size:18px;font-weight:bold;">ЮНИСЕКС</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|gender=подростковый" style="font-size:18px;font-weight:bold;">ДЕТСКИЕ/ПОДРОСТКОВЫЕ</a>
    
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|material=пластик" style="font-size:18px;font-weight:bold;">ПЛАСТИК/АЦЕТАТ</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|material=металл" style="font-size:18px;font-weight:bold;">МЕТАЛЛ/ТИТАН</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|material=комби" style="font-size:18px;font-weight:bold;">ПЛАСТИК+МЕТАЛЛ</a>
    
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|construct=ободок" style="font-size:18px;font-weight:bold;">ОБОДОК</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|construct=леска" style="font-size:18px;font-weight:bold;">ЛЕСКА</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|construct=винты" style="font-size:18px;font-weight:bold;">ВИНТЫ</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|construct=втулки" style="font-size:18px;font-weight:bold;">ВТУЛКИ</a>
    
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|frame_form=круг,округлая,округлые,овал,овальная,овальные" style="font-size:18px;font-weight:bold;">КРУГЛЫЕ</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|frame_form=прямоугольник,трапеция" style="font-size:18px;font-weight:bold;">КВАДРАТНЫЕ</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|frame_form=капли" style="font-size:18px;font-weight:bold;">КАПЛИ</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|frame_form=кошки" style="font-size:18px;font-weight:bold;">КОШАЧИЙ ГЛАЗ</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|frame_form=бабочка,бабочки" style="font-size:18px;font-weight:bold;">БАБОЧКИ</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|frame_form=ретро" style="font-size:18px;font-weight:bold;">РЕТРО</a>
       
    <a href="{$_modx->makeUrl($_modx->resource.id)}?ms|frame_form=граненая,граненые" style="font-size:18px;font-weight:bold;">ГРАНЕНЫЕ</a>
    </div>
    , проблема остается: именно при вызове страницы из пагинации этот блок (даже в виде прямого html) все равно не виден, и также не работает js обработчик события hover.

    Хотя идущий следом в коде вызов
    {$results}
    отрабатывает нормально, грузятся результаты фильтра.

    Удивительно, что обычные вставки выше и ниже
    {include 'file:chunks/fast_filter.tpl'})
    в html типа «123» в шаблоне видны.

    То есть, если бы код отваливался на глючном фрагменте
    {include 'file:chunks/fast_filter.tpl'})
    тогда остальное бы тоже не работало, но работает.

    Огромное спасибо за помощь.
    С уважением.
  • ВК
    ВК
    2020-10-24 16:23:54
    Спасибо за ответ.

    Обратите внимание, пир переходе со второй страницы на первую в пагинации обратно, первая отображается в старом варианте шаблона: пропадает верхний блок с названиями быстрого фильтра: женские, мужские и т.д., а также эффект изменения ракурса фото товара при hover мышкой.

    С Уважением.
    1. Александр Мальцев
      Александр Мальцев
      2020-10-25 02:31:36
      Попробуйте у ресурса убрать флажок «Кэшируемый», а также переустановить дополнение mSearch2 (может в этой версии есть баг). Если стоит последняя mSearch2, то откатите на более старую версию, а если наоборот — то установите более новую. Ну и почистите кэш после этих действий.
  • Александр Мальцев
    Александр Мальцев
    2020-10-24 15:08:02
    Здравствуйте! Открыл вашу первую страницу, а затем используя пагинацию перешёл на другую — дизайн одинаковый. Значит что-то закешировалось в вашем браузере.
    1. ВК
      ВК
      2020-10-23 18:55:34
      Добавил параметры пагинатора pdoPage в вызове mFilter2 для отключения ajax

      'paginator' => 'pdoPage@pagenav_noajax'
      Но все по прежнему, вылеает старая версия шаблона, и, похоже, ajax все же остался.