Головна » Блоги » InstantCMS - переваги та недоліки системи » Об'єднуємо кілька ітерацій в циклі foreach в один блок, вставляємо рекламні блоки на прикладі віджета "Список контенту" в InstantCMS

Об'єднуємо кілька ітерацій в циклі foreach в один блок, вставляємо рекламні блоки на прикладі віджета "Список контенту" в InstantCMS

0
Голосів: 0
Опубліковано: 2021 / 06 / 19
Переглядів: 61
Категорія: Різне
Редагувалося: 2 рази — останній 19 червня 2021
Необхідність вставити потрібний код після певних ітерацій виникає досить часто. До прикладу - рекламні блоки.

Розглянемо варіант коли рекламний блок треба вставляти завжди після однієї і тієї самої кількості ітерацій. Паралельно об'єднаємо ітерації між рекламними блоками в одному елементі(<div>)

Наш з вами код буде таким:
Код PHP:
  1.  
  2. <div class="trio">
  3. <?php
  4. $i = 1;//Це перщий прохід
  5. $b = 3;//Кількість об'єднаних записів
  6. foreach($items as $item) { ?>
  7. <div class="item">
  8. Тут будемо виводити $item
  9. </div>
  10. <?php if($i % $b == 0 && $i != count($items)) { ?></div><div class="trio"><?php } ?>
  11. <?php $i++;} ?>
  12. </div>
  13.  

Пояснення до коду:

"Загортаємо" наш цикл в новий блок (<div class="trio">).
Призначаємо змінну $i, яку будемо збільшувати на одиницю після кожної ітерацїї ($i++).
Призначаємо змінну $b - кільсть ітерацій в одному блоці.
Виводмо потрібне з умовою: <?php if($i % $b == 0 && $i != count($items)) { ?> (якщо порядковий номер ітераціїї ділиться на призначену кількість елементів в одному блоці без залишку і це не остання ітерація)

Результат на прикладі віджета "Список контенту" (InstantCMS 2.14.2):
Об'єднуємо кілька ітерацій в циклі foreach в один блок, вставляємо рекламні блоки на прикладі віджета "Список контенту" в InstantCMS

В прикладі рекламні блоки вставлені після кожного 3-го та після останього запису, кожні 3-и записи об'єднані в окремому блоці

Читайте також:

Коментарі (0)

Немає коментарів. Ваш буде першим!