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

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

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

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

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

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

      т.е. по очереди выводить 2 баннера бесконечно но через каждые 8
        Максим Кузнецов
        01 декабря 2015, 14:11
        +1
        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
          0
          там чуть сложнее
          вот каталог в котором у меня 2 баннера появляются
          ekodomostroy.ru/catalog/

          когда я нажимаю clip2net.com/s/3r79cDH
          у меня через ajax добавляются еще товары. вот как к ним применять этот скрипт?
          мне искать ajax обработчик и туда вписывать или как то по другому можно?
            Aliaksandr Katlou
            01 декабря 2015, 20:10
            0
            Есть костыль без JS. В каталоге создать ссылки в разделе — после 8го товара, после 16, и через кондишнл темплейтс сделать чанки с баннером для ссылки. Минусы — много лишних движений, при сортировке будет положение меняться.
      Саша Иващенко
      21 ноября 2015, 14:54
      0
      так я пока вывожу…
      <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