Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

Помогите уже замаялся как сделать 3 и больше колонок товара. Как тут http://nanevskom.com/catalog/group=1 или тут http://samovary.su/. Перепробывал разные методы нечего не помогло(.

пробывал так нечего не работает или я чего-то не то делаю

Лезем в шаблон products.tpl

Меняем блок от :
{if $products}
<!-- Список товаров /-->
до :
<!-- Список товаров #End /-->
{else}
Товары не найдены
{/if}

Код зависим от верстки сайта Вашего, так что покажу на пальцах:

{section name=lots loop=$products/3 step=3}
$item=$smarty.section.foo.index;

<!-- Выводим данные о $products[$item] /-->
<!-- Выводим данные о $products[$item + 1] /-->
<!-- Выводим данные о $products[$item + 2] /-->
{/section}

$item=$item+3;

<!-- Выводим огрызки -->
{section name=last_lots loop=$products%3 start=$item}
<!-- Выводим данные о $products[last_lots] /-->
{/section}

<!-- Добиваем пустые блоки, если требуется /-->
{if $products%3 == 2}
<!-- Добить один пустой блок /-->
{elseif $products%3 == 1}
<!-- Добавить два пустых блока /-->
{/if}


и так пробывал в catalog.tpl нужно указать количество столбцов, найдите строчку {if $smarty.foreach.products.iteration%2 == 0} и вместо 2 укажите нужное число столбцов.

покажите пожалуйста если не трудно пример на основе default темы.

Ссылка на сообщение
Поделиться на другие сайты

{if $smarty.foreach.products.iteration%2 == 0}


{/if}
2 меняем на 3 и ВСЕ (но, естественно, блоки товаров надо переверстать, чтобы 3 помещалось)
Ссылка на сообщение
Поделиться на другие сайты

Именно, при блочной верстке:

{foreach name=products item=product from=$products}
<div style="float:left;width:***;overflow:hidden;">Содержание элемента строки</div>
{if $smarty.foreach.products.iteration%3 == 0}
<div style="clear:both;"><!-- /--></div>
{/foreach}

Т.е. закидываем все товары подряд, и через три вставляем пустой блок, не обтекаемый ни с одной стороны - так организуем переход на следующую строку.

Как верно говорит Косяк, ширина блоков должна быть соответствующая. И должен быть выставлен "overflow:hidden", чтобы содержание не распирало блоки больше нужного размера.

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

Минус верстки блоками в 3 столбца тоже есть. Если ширины их содержащего элемента слегка не достаточно (к примеру монитор старенький или окно браузера маленькое), очевидным образом один блок из трех уедет на следующую строку. И будет у вас

[товар][товар]
[товар]
[товар][товар]
[товар]
[товар][товар]
[товар]

Что на мой взгляд немного коряво.
Можно избавиться: выставив блокам одинаковую высоту и удалив <div style="clear:both;"><!-- /--></div>
Но ограничивать высоту блоков - плохая идея.

При верстке в 2 столбца, конечно блоки красиво становятся в один столбец :)

Ссылка на сообщение
Поделиться на другие сайты

Несерьезно...

В style.css

.product_block {
float:left;
width:200px; <---- Вот тут ширина блока товара, уменьшаем ее !
overflow:hidden;
margin-bottom:16px;
}

В цикле в catalog.tpl и/или products.tpl в районе 95 строки:

<!-- Товар #End /-->
{if $smarty.foreach.products.iteration%3 == 0} <---- двоечку поменяли на троечку
<div class="clear"><!-- /--></div>

Ссылка на сообщение
Поделиться на другие сайты
  • 3 года спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...