Как создать 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-ый год доживает свои последние часы, а значит самое время подвести итоги. Все подводят и мы подведем, раз уж есть такая традиция :)
На самом деле, год выдался невероятно тяжелый и напряженный. Ограничения, связанные с пандемией, рост цен поставщиков цифровых услуг, растущая все сильнее и сильнее конкуренция. Но были и события, которыми мы гордимся. По мелочам таких много, но глобальных, масштабных и особенно значимых – всего три. О них и хочется рассказать, подводя итоги года.