Как создать 3 колонки в каталоге товаров

Как создать 3 колонки в каталоге товаров

Поставите if ($nnn%2==0) - будет две колонки. if ($nnn%4==0) - четыре колонки. И т.д.

  • Александр Биг Эпл (ba5)
  • 83

а если наоплнение разное по высоте, то табличка будет лучше. ну либо если блоками, то после третьего надо будет ставить <div style="clear:both"></div>

  • Пётр (blagoff)
  • 10

Кирилл, чтоб сделать как предложил Виталий, надо залезть в папку modules/shop а там найти файл shop.view.php и отредактировать его. Если шаблон базовый, то можно попробовать отыскать класс, который отвечает за вывод одной позиции и назначить ему float: left. Второмы способом удобно пользоваться при "резиновой верстке"

  • Виталий (DIAFAN.CMS)
  • 842
  • Виталий (DIAFAN.CMS)
  • 842
  • Виталий (DIAFAN.CMS)
  • 842
  • Виталий (DIAFAN.CMS)
  • 842

Конечно, 2010-ый год, еще 4.х версия.

Сейчас это /modules/shop/views/shop.view.list.php - там все в одном файле посвящено выводу списка товаров.

Виталий я правильно понимаю ваше описание:

  • Виталий (DIAFAN.CMS)
  • 842
  • Пётр (blagoff)
  • 10
  • Виталий (DIAFAN.CMS)
  • 842
  • Виталий (DIAFAN.CMS)
  • 842

В данном алгоритме $k - переключатель в двух положениях, либо пусто, либо нет. Поэтому две колонки.

Поправьте $k, чтобы в конце цикла $k обнулялось когда доходит до 3 или 4. И закрывайте tr когда $k достигает 3 или 4. И все!

  • Виталий (DIAFAN.CMS)
  • 842
  • Марина Дорохина (DIAFAN.CMS)
  • 10

В таких случаях режим разработки можно влкючить (в Параметрах сайта), скрипт Вам напишет в такой то строке ошибка.

Марина, вставляю Ваш код, все равно ошибка. Именно в этой строке. Пишет: Parse error: syntax error, unexpected '.' in . /art-narod.ru/www/modules/shop/shop.view.php on line 236

236-я в общем файле = 11-й в приведенном выше фрагменте.

  • Марина Дорохина (DIAFAN.CMS)
  • 10
  • Онлайн Софт (Onmaster)
  • 81

//категории foreach($result["categories"] as $cat_id => $cat) < echo '<div > //название категории echo '<h2>'.$cat["name"].'</h2>';

//краткое описание категории if(! empty($cat["anons"])) < echo '<div > >

//краткое описание подкатегории if(! empty($child["anons"])) < echo '<div > >

//краткое описание товара if(! empty($row["anons"])) < echo '<div > >

//кнопка "Купить" self::form($row, $result);

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

блин ! вот правильный кусок кода! в буфере обмена не то было, отправил и сейчас только заметил :(

//категории foreach($result["categories"] as $cat_id => $cat) < echo '<div > //название категории echo '<h2>'.$cat["name"].'</h2>';

//краткое описание категории if(! empty($cat["anons"])) < echo '<div > >

  • Виталий (DIAFAN.CMS)
  • 842

Видите принцип? По краям стоит <table></table> Каждая строка начинается и заканчивается <tr></tr> И внутри каждой строки есть колонки <td>содержимое</td> Т.е. у нас в таблице повторяются <tr></tr> - это строки в таблице, а в каждой строке повторяются по две колонки <td></td>.

Соответственно, чтобы в РНР вывести таблицу надо сделать цикл:

Понятно? Если будет цикл в 3 круга, этот код выведет таблицу с тремя строками и двумя колонками в каждой, как в примере выше.

Или вложенный цикл:

Надеюсь, это понятно.

Теперь: если у вас один цикл, в котором куча товаров выводятся подряд, один за одним:

Затем то же самое снова: первая колонка - вторая первая-вторая первая-вторая и т.д.

Для этого нам надо знать, какой товар по счету выводится, первый или второй. Введем любую переменную $pipka и будем ею считать колонки:

Таким образом цикл настрочит таблицу с кучей строк и с двумя колонками, в каждой из которых будет товар!

Еще яснее объяснить не могу!

  • Онлайн Софт (Onmaster)
  • 81
  • Виталий (DIAFAN.CMS)
  • 842

Уже читаю, спасибо вам :)

  • Петр (peter66)
  • 29
  • Петр (peter66)
  • 29

Виталий спасибо за потраченное время, но у меня не получилось. Может поправите оригинал. Сделаю вывод и выложу с объяснениями для всех. if(! empty($result["rows"])) < //открываем таблицу перед циклом echo "<table><tr><td>"; $pipka=0; foreach < if ($pipka==0) echo "<tr>"; //т.е. выводим tr для первого раза, когда счетчик echo "<td>";

  • Виталий (DIAFAN.CMS)
  • 842
  • Дима (agatahttp)
  • 1
  • Онлайн Софт (Onmaster)
  • 81
  • Дима (agatahttp)
  • 1
  • Виталий (DIAFAN.CMS)
  • 842
  • Онлайн Софт (Onmaster)
  • 81

Диафанщики наверное запарились отвечать по этой теме. Поэтому спрашиваю у таких как я пользователей. У меня с помощью css выводится 3 товара в строке. НО! При добавлении 1-го или 2-го товара в корзину смещаются вниз нижние товары - см. приаттаченную картинку. При этом если добавлять в корзину 3-й товар, то никакого смещения нет.

В общем какой-то мой css косяк. Не знаете как исправить?

Вроде получилось на стандартном шаблоне вывести n-колонок, ЦМС 4.5 шоп.вью во вложении.

Вопрос к разработчикам: что за блок такой <div >можно ли размещать закрытие таблицы </td></tr></table> после этого блока?

> //конец цикла foreach() вывода товаров

echo '<div - что это такое? //мои правки echo "</td></tr></table>"; - можно ли закрыть эту таблицу после этого блока "clear"?

> //конец блока if, который перед циклом вывода товаров

  • Онлайн Софт (Onmaster)
  • 81
  • Виталий (DIAFAN.CMS)
  • 842
  • Виталий (DIAFAN.CMS)
  • 842
  • Петр (peter66)
  • 29

Насколько правильное решение по выводу товара в 2 колонке на divах? Вопрос к сообществу. Вопрос к Дмитрий (Onmaster): если выше было озвучено о закрытие таблиц через проверку, дабы получить целостность. То как быть с дивами? //товары в категории if (! empty($cat["rows"])) < echo '<div >$i=1;

  • Онлайн Софт (Onmaster)
  • 81

В версии diafan.CMS.5.1.1 нет файла shop.view.php. Что в этом случае править?

  • Denis (Drachoon)
  • 154
  • Петр (peter66)
  • 29
  • Андрей Уваров (andrey)
  • 2
  • Андрей Уваров (andrey)
  • 2

Как правило товары, новости и т.д. в шаблонах выводятся циклом. Начинается он со строк

  • Denis (Drachoon)
  • 154

Ну и как часто планируется использовать эту опцию для отдельно взятого проекта? Могу ответить 1 раз. 1 раз это можно и решить путём настрйки шаблона - не так уж и долго.

Выводы: Решение для диафана + Очень мало кода в CMS. - Непонятно для домохозяек.

Решение ShopScript + Понятно для домохозяек - Очень много лишнего кода

Денис, ты видел сколько на форуме об этом развели сыр-бора? Значит тема актуальная не только для домохозяек (покажи мне тут домохозяек).

Ну, и скажи, сколько "лишнего" кода будет?

  • Denis (Drachoon)
  • 154

Ну вот те персы, которые не могут освоить данный вопрос и есть домохозяйки.

Там проблем особых нет, нужно уметь составлять простенькие алгоритмы на 1 вложенном цикле, этому учать в 7 классе общеобразовательной школы. И синтаксис PHP знать как этот алгоритм оформить.

А уж HTML не знать человеку, который решил сайт сделать - это вообще позор. Любой 5 класник у которого есть комп наверное, это освоил если задавался целью сделать собственную страничку в интернете.

  • Андрей (R4W)
  • 137
  • Юмагулов Азат (dewmas)
  • 16
  • Denis (Drachoon)
  • 154
  • Юмагулов Азат (dewmas)
  • 16
  • Denis (Drachoon)
  • 154
  • Алексей (yelrik)
  • 1

//вывод списка товаров if (!empty($result["rows"])) < //вывод сортировки товаров if(! empty($result["link_sort"])) < echo $this->get('sort_block', 'shop', $result); >

echo '<div >Показать весь код

$rows = array(array(), array(), array(), array());

foreach ($rows as $value) < echo '<div > foreach ($value as $row) < echo '<div >

Подскажите, пожалуйста, что поправить, чтобы выводился 1 товар в строке.

  • Степан Кашуба (Goomb)
  • 2

Двумерный массив здесь будет лишним. Достаточно будет сложить все товары в один ряд

и выводить одним циклом, как-то так:

  • Виталий (DIAFAN.CMS)
  • 842
  • Сергей (olgon)
  • 18
  • Денис (capone5000)
  • 58
  • Горопашный Степан (stepanych)
  • 81

по идее что-то типа того

Новости Блоги

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

Блоги

2021-ый год доживает свои последние часы, а значит самое время подвести итоги. Все подводят и мы подведем, раз уж есть такая традиция :)

На самом деле, год выдался невероятно тяжелый и напряженный. Ограничения, связанные с пандемией, рост цен поставщиков цифровых услуг, растущая все сильнее и сильнее конкуренция. Но были и события, которыми мы гордимся. По мелочам таких много, но глобальных, масштабных и особенно значимых – всего три. О них и хочется рассказать, подводя итоги года.