mFilter2 – при фильтрации вывести дополнительный блок с ресурсами

Приветствую.
Столкнулся с такой задачей.
Установлен mFilter2, фильтр ограничен выводом товара limit=>9, заместо пагинации кнопка.
Как при фильтрации или если на странице выводится меньше товаров чем указано в лимите, подгружать вывод из дочерних веток. Например, выводить блок похожие товары.
Направьте пожалуйста на правильный путь, может где есть примеры? Или что-то подобное. За готовое решение отблагодарю.
Рустам
11 августа 2023, 05:01
modx.pro
261
0

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

Dan
Dan
13 августа 2023, 09:29
+1
1. Для варианта, если результатов меньше лимита: в чанке, который у вас указан в tplOuter, можете проверять плейсхолдер $total
{if $total > 9}
<!-- Блок похожие товары -->
{/if}
2) При фильтрации используй событие mse2_load и либо подргужай нужный блок по ajax, либо показывай его, если он изначально есть спрятанный в верстке. Вот инфа в доке
    Рустам
    14 августа 2023, 14:39
    0
    Спасибо за ответ!
    Варианты рабочие! Первый $total так просто, честно не знал.
    Второй, при фильтрации если уже существует скрытый вывод блоков, нужно в скрипте посчитать количество выведенных товаров и с помощью сравнение показывать блок с этим разобрался.
    $(document).on('mse2_load', function (e, data) {
      var matched = $("div#transferBox");
      if(matched.length < 9)
      {
        $('#total').addClass('on');
      }else{
        $('#total').removeClass('on');
      } 
    });
    Но никак не могу понять, как подгрузить через событие mse2_load блок чтобы он не был спрятан в коде. Подгрузить, например сниппет msProducts?
      Dan
      Dan
      14 августа 2023, 21:16
      1
      +1
      Делай ajax-запрос, обрабатывай его плагином или сниппетом и вставляй результат. Основы работы с ajax можешь посмотреть тут
        Рустам
        17 августа 2023, 09:38
        0
        Спасибо за подсказки!
        Разобрался…
        Можно выводить сниппет либо через Ajax событие «клик», либо через событие mse2_load.

        Но все равно знаний у меня нехватает, после первичного ajax запроса сниппет подгружается, но при фильтрации сниппет приходится маскировать через style=«display: none;»

        А вот сделать как в фильтре чтобы была подгрузка и удаление самого блока в зависимости от условий, сколько товара выведено на страницы, увы здесь я не тяну.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      4