Как между товарами нужно вывести блок баннера?
        Всем доброе время суток. У меня возник такой вопрос:
Мне между товарами в mfilter2, minishop2 нужно вывести блок баннера.
Допустим через каждые 16 товаров такой баннер выводить…
Как лучше сделать(идеи предложения)?
про conditionalTpls читал но это не то…
    
    
                                                                                
            Мне между товарами в mfilter2, minishop2 нужно вывести блок баннера.
Допустим через каждые 16 товаров такой баннер выводить…
Как лучше сделать(идеи предложения)?
про conditionalTpls читал но это не то…
Комментарии: 11
                Буду рад узнать ваши решения если они имеются))            
                    
                &tpl_nN — Имя чанка для каждого N-го ресурса, например, &tpl_n4=`tplEvery4th` будет применено к каждому 4-му ресурсу.
И уже в нужном чанке вызывайте свои баннера.
            
                    И уже в нужном чанке вызывайте свои баннера.
                ну если будет вызов товаров через mfilter2 тогда просто товары заменяются данным чанком… не сильно лояльное решение)            
                    
                Как альтернатива — через jquery:
                    function addBanner() {
	$(".container > div:nth-child(16n)").after("<div id='bannerBlock'></div>");
} — и вешать функцию на каждое срабатывание mfilter2.            
                есть идеи?
modx.pro/help/7073/#comment-49775
                    modx.pro/help/7073/#comment-49775
                Да, спасибо. Именно скриптом я и сделал… но вот задача как сделать 1 баннер через каждые 8 а другой через каждые 16, что бы через каждые 8 предыдущий не повторялся…
т.е. по очереди выводить 2 баннера бесконечно но через каждые 8
                    т.е. по очереди выводить 2 баннера бесконечно но через каждые 8
                1. Создаешь через каждые 8 блоков контейнер с уникальным классом на перовом уровне вложения родителя:
2. Теперь для каждого четного вставляешь одно, а для каждого нечетного — другое:
Как альтернатива — можно расписать условие проверки внутри шага один. Если функцию нужно будет вызывать с определенной периодичностью (инфинити скролл, например), то это предпочтительнее. Если только 1 раз при создании страницы — то лучше вышеописанным способом.
                    $(".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 раз при создании страницы — то лучше вышеописанным способом.
                там чуть сложнее
вот каталог в котором у меня 2 баннера появляются
ekodomostroy.ru/catalog/
когда я нажимаю clip2net.com/s/3r79cDH
у меня через ajax добавляются еще товары. вот как к ним применять этот скрипт?
мне искать ajax обработчик и туда вписывать или как то по другому можно?
                    вот каталог в котором у меня 2 баннера появляются
ekodomostroy.ru/catalog/
когда я нажимаю clip2net.com/s/3r79cDH
у меня через ajax добавляются еще товары. вот как к ним применять этот скрипт?
мне искать ajax обработчик и туда вписывать или как то по другому можно?
                Есть костыль без JS. В каталоге создать ссылки в разделе — после 8го товара, после 16, и через кондишнл темплейтс сделать чанки с баннером для ссылки. Минусы — много лишних движений, при сортировке будет положение меняться.            
                    
                не фонтан решение            
                    
                так я пока вывожу…
                    <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>            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.