Как между товарами нужно вывести блок баннера?

Всем доброе время суток. У меня возник такой вопрос:
Мне между товарами в mfilter2, minishop2 нужно вывести блок баннера.
Допустим через каждые 16 товаров такой баннер выводить…
Как лучше сделать(идеи предложения)?

про conditionalTpls читал но это не то…
Саша Иващенко
Саша Иващенко
19 ноября 2015, 08:42
modx.pro
1 903

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

Саша Иващенко
19 ноября 2015, 11:43
Буду рад узнать ваши решения если они имеются))
    Евгений Webinmd
    19 ноября 2015, 12:09
    &tpl_nN — Имя чанка для каждого N-го ресурса, например, &tpl_n4=`tplEvery4th` будет применено к каждому 4-му ресурсу.

    И уже в нужном чанке вызывайте свои баннера.
      Саша Иващенко
      21 ноября 2015, 14:49
      ну если будет вызов товаров через mfilter2 тогда просто товары заменяются данным чанком… не сильно лояльное решение)
      Максим Кузнецов
      19 ноября 2015, 14:23
      Как альтернатива — через jquery:
      function addBanner() {
      	$(".container > div:nth-child(16n)").after("<div id='bannerBlock'></div>");
      }
      — и вешать функцию на каждое срабатывание mfilter2.
      Саша Иващенко
      21 ноября 2015, 14:51
      Да, спасибо. Именно скриптом я и сделал… но вот задача как сделать 1 баннер через каждые 8 а другой через каждые 16, что бы через каждые 8 предыдущий не повторялся…

      т.е. по очереди выводить 2 баннера бесконечно но через каждые 8
        Максим Кузнецов
        01 декабря 2015, 14:11
        1. Создаешь через каждые 8 блоков контейнер с уникальным классом на перовом уровне вложения родителя:
        $(".container > div:nth-child(8n)").after("<div class='banner-block'></div>");

        2. Теперь для каждого четного вставляешь одно, а для каждого нечетного — другое:
        $(".container > .banner-block:nth-child(odd)").html("2, 4, 6");
        $(".container > .banner-block:nth-child(even)").html("1, 3, 5");

        Как альтернатива — можно расписать условие проверки внутри шага один. Если функцию нужно будет вызывать с определенной периодичностью (инфинити скролл, например), то это предпочтительнее. Если только 1 раз при создании страницы — то лучше вышеописанным способом.
          Саша Иващенко
          01 декабря 2015, 18:39
          там чуть сложнее
          вот каталог в котором у меня 2 баннера появляются
          ekodomostroy.ru/catalog/

          когда я нажимаю clip2net.com/s/3r79cDH
          у меня через ajax добавляются еще товары. вот как к ним применять этот скрипт?
          мне искать ajax обработчик и туда вписывать или как то по другому можно?
            Aliaksandr Katlou
            01 декабря 2015, 20:10
            Есть костыль без JS. В каталоге создать ссылки в разделе — после 8го товара, после 16, и через кондишнл темплейтс сделать чанки с баннером для ссылки. Минусы — много лишних движений, при сортировке будет положение меняться.
      Саша Иващенко
      21 ноября 2015, 14:54
      так я пока вывожу…
      <script type="text/javascript">
          $(document).ready(function(){
          
          	$("#mse2_results .row.ms2_product:nth-child(8)").after( $('#banner1').clone().removeClass( "hidden" ) );
          	$("#mse2_results .row.ms2_product:nth-child(17)").after( $('#banner2').clone().removeClass( "hidden" ) );
      
      
          });
      </script>
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        11