Как между товарами нужно вывести блок баннера?
Всем доброе время суток. У меня возник такой вопрос:
Мне между товарами в 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>
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.