Перейти к содержимому


Фото
- - - - -

Каждые 3 товара в div-e


  • Чтобы отвечать, сперва войдите на форум
8 ответов в теме

#1 martinways

martinways
  • Пользователь
  • 88 сообщений

Опубликовано 23.11.2014 - 11:03

Подскажите какое правило надо сделать чтобы каждые 3 товара заворачивались в div, например:

<div class=products><li class=product>...</li><li class=product>...</li><li class=product>...</li></div>

<div class=products><li class=product>...</li><li class=product>...</li><li class=product>...</li></div>

и так далее

 

Или другими словами надо после каждого 3-го товара вставить разделитель  </div><div class=products>



#2 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 23.11.2014 - 11:20

{foreach $products as $product}
    {if $product@index%3==0}
       Начало тройки...
    {/if}
   Стандартный вывод
    {if $product@iteration%3==0 || $product@last }
       Конец тройки...
    {/if}
{/foreach}



#3 Noxter

Noxter
  • Забаненый
  • 1 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 23.11.2014 - 11:56

http://forum.simplac...т-в-одном-диве/

#4 chocolate_moles

chocolate_moles
  • Фрилансер
  • 489 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Санкт-Петербург

Опубликовано 23.11.2014 - 12:11

{foreach $products as $product}
    {if $product@first || ($product@iteration - 1) is div by 3}<div class=products>{/if}
        <li class=product>...</li>
    {if $product@last || $product@iteration is div by 3}</div>{/if}
{/foreach}


#5 martinways

martinways
  • Пользователь
  • 88 сообщений

Опубликовано 25.11.2014 - 10:13

Друзья, спасибо за помощь, сделал по первому варианту Корса и все получилось как и хотел.



#6 Flexcore

Flexcore
  • Пользователь
  • 19 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 02.12.2019 - 21:00


{foreach $products as $product}
    {if $product@first || ($product@iteration - 1) is div by 3}<div class=products>{/if}
        <li class=product>...</li>
    {if $product@last || $product@iteration is div by 3}</div>{/if}
{/foreach}


Спасибо, пригодилось!

#7 DaVinci

DaVinci
  • Фрилансер
  • 1 156 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 03.12.2019 - 23:13

<table>
    {foreach array_chunk($products, 3) as $chunk}
      <tr>
        {foreach $chunk as $product}
          <td>{$product->name}</td>
        {/foreach}		
      </tr>
    {/foreach}		
</table>


#8 Flexcore

Flexcore
  • Пользователь
  • 19 сообщений
  • Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 04.12.2019 - 01:51


<table>
    {foreach array_chunk($products, 3) as $chunk}
      <tr>
        {foreach $chunk as $product}
          <td>{$product->name}</td>
        {/foreach}		
      </tr>
    {/foreach}		
</table>


Любые функции с массивами более ресурсоемкие по сравнению с банальным условием.
Но несомненно ваше решение простое и элегантное!

#9 DaVinci

DaVinci
  • Фрилансер
  • 1 156 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 04.12.2019 - 14:01

Любые функции с массивами более ресурсоемкие по сравнению с банальным условием.
Но несомненно ваше решение простое и элегантное!

 

любые банальные условия более ресурсоемкие по сравнению с их полным отсутствием. если не хотите писать о том что масло масляное то почитайте про оптимизацию, проведите сравнительные тесты. Вы руководствуетесь догадками которые к реальности не имеют отношения.

 

+ если считать что затраты на программиста которому приходиться читать тысячу невразумительных условий вместо абстрагированного когда и за это он берет двойную плату за сою работу, то для заказчика это тоже ресурсоемко.

 

пример с условиями в данном случае прост, но когда таких условий становиться много код поддерживать сложно и дорого! писать надо для людей а про оптимизацию думать только в том случае если в этом есть практическая необходимость и если она себя оправдывает.


Изменено: DaVinci, 04.12.2019 - 14:07





0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых