Как вывести после каждого 3 го товара банер?
Добрый день, хочу в шаблоне category.twig вывести после каждого третего товара банер, масив банеров их беру с админки. И формирую масив в контролере
// banner $this->load->model('design/banner'); $this->load->model('tool/image'); $data['bannersCat'] = array(); $banners = $this->model_design_banner->getBanner(18); foreach ($banners as $baners) { if (is_file(DIR_IMAGE . $baners['image'])) { $data['bannersCat'][] = array( 'title' => $baners['title'], 'link' => $baners['link'], 'image' => $this->model_tool_image->resize($baners ['image'], 252, 381), "id" => $baners["banner_id"] ); }; }; |
// banner $this->load->model('design/banner'); $this->load->model('tool/image'); $data['bannersCat'] = array(); $banners = $this->model_design_banner->getBanner(18); foreach ($banners as $baners) { if (is_file(DIR_IMAGE . $baners['image'])) { $data['bannersCat'][] = array( 'title' => $baners['title'], 'link' => $baners['link'], 'image' => $this->model_tool_image->resize($baners ['image'], 252, 381), "id" => $baners["banner_id"] ); }; };
В шаблоне category.twig - в цыкле вывода делаю проверку
{% if loop.index % 3 %} {% for baner in bannersCat %} {% set key = loop.index %} <img src="{{ baner.image }}" > {% endfor %} {% endif %} |
{% if loop.index % 3 %} {% for baner in bannersCat %} {% set key = loop.index %} <img src="{{ baner.image }}" > {% endfor %} {% endif %}
тут нужно выводить по 1 банеру после каждого третего товара, банеров может быть в масиве много, но нужно по 1 выводить и что бы они не повторялись
Вот так товар, товар,товар,банер1,товар,товар,товар,банер2,товар,товар,товар,банер3 итд
Дополнительно:
И дальше не знаю как это реализовать
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для того чтобы выводить банер после каждого третьего товара на странице, вам нужно выполнить следующие шаги:
1. Сначала, вам необходимо получить список всех товаров, которые вы хотите отобразить на странице. Это может быть массив товаров из базы данных или любой другой источник данных.
2. Затем, вам нужно создать цикл, который будет перебирать каждый товар из списка. Внутри этого цикла вы будете выводить информацию о товаре.
3. Внутри цикла, вы можете использовать условие, чтобы определить, является ли текущий товар третьим в списке. Для этого можно использовать оператор деления по модулю (%), который возвращает остаток от деления. Если остаток от деления на 3 равен 0, то это значит, что текущий товар является третьим.
4. Если текущий товар является третьим, то вы можете вывести HTML-код вашего банера, который будет отображаться после третьего товара.
Пример кода на PHP:
$products = [/* массив товаров */]; $count = 0; foreach ($products as $product) { // Вывод информации о товаре echo 'Название товара: ' . $product['name'] . '<br>'; echo 'Цена: ' . $product['price'] . '<br>'; // Проверка на третий товар $count++; if ($count % 3 == 0) { // Вывод баннера после каждого третьего товара echo '<div class="banner">Рекламный баннер</div>'; } }
Этот код будет выводить информацию о каждом товаре из списка, а также отображать баннер после каждого третьего товара. Помните, что вы можете настроить HTML-код баннера в соответствии с вашими потребностями и стилями.