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

ВК
410
7
0
Уважаемые эксперты,

На сайте установлен 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'
			])}
Спасибо.

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

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

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

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

        Огромное спасибо за помощь.
        С уважением.
    2. ВК
      24 октября 2020, 16:23
      Спасибо за ответ.

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

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

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