Вход • Регистрация

Вывод списка товаров по 4 в ряд, 40 на странице

  • 10 марта 2015 г.
  • Хочу вывести по 4 товара в ряд и 40 товаров на странице.
    У меня верстка на бутстрапе. По 4 товара в строке. Что то странное творится с ней если сделать количество товаров на странице не 12 а например 40. Может кто знает как исправить? (например если сделать 40 товаров на страницу то в строке появляется 14-13-13-0 товаров и верстка жестко ползет, т.к. у меня есть товары с картинками и без и с разной длинной названия).
    Вот счетчик:
    Код
    $rows = array(array(), array(), array(), array());

    $t = 0;
    foreach ($result["rows"] as $row => $value)
    {
    if($t > 2) $t = 0;
    $rows[$t][] = $value;
    $t++;
    }


    Верстка:
    Код
    <div class="row">
    <div class="col-md-3">
    товар
    </div>
    <div class="col-md-3">
    товар
    </div>
    <div class="col-md-3">
    товар
    </div>
    <div class="col-md-3">
    товар
    </div>
    </div>
    • 10 марта 2015 г.
    • для начала - сделайте так
      if($t > 3) $t = 0;
      • 10 марта 2015 г.
      • пробовал. выводит по 3 товара.
        • 10 марта 2015 г.
        • Кирилл, я Вам уже подсказывал то же самое что и Степан в другой теме. Вы уж дубль темы создали.
          Вы уверены, что 4 штуки у Вас поместятся по ширине, может где-то ограничили ширину? Смотрели?
          • 10 марта 2015 г.
          • http://minecraft2pro.ru/catalog/peugeot/206/page2/

            п.с. тему создал отдельную чтобы было проще найти в поиске тем кому может быть полезно.
            • 10 марта 2015 г.
            • ну так бы и сказали сразу, что надо код смотреть)
              уберите в начале разсортировку товаров по 4-м массивам и выводите из изначального элемента $rows, который приходит во вьюху
    • 11 марта 2015 г.
    • Код
      if($t > 9) $t = 0;
      покажите сайт, что-то очень стало интересно это что вообще там делаете?
      • 11 марта 2015 г.
      • http://minecraft2pro.ru/catalog/citroen/c4/
        но на последней странице все равно треш.
        • 11 марта 2015 г.
        • естественно. вы выводите товар не строками, а колонками.
          сделайте, как написал выше и все будет
          • 11 марта 2015 г.
          • К сожалению не дружу с программированием)
            • 12 марта 2015 г.
            • покажите всю вьюху
              • 12 марта 2015 г.
              • Код
                <?php
                /**
                * Шаблон списка товаров
                *
                * @package DIAFAN.CMS
                * @author diafan.ru
                * @version 5.4
                * @license http://www.diafan.ru/license.html
                * @copyright Copyright (c) 2003-2015 OOO «Диафан» (http://www.diafan.ru/)
                */
                if (!defined('DIAFAN'))
                {
                include dirname(dirname(dirname(__FILE__))).'/includes/404.php';
                }

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

                echo '<div class="shop-pane">';

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

                $t = 0;
                foreach ($result["rows"] as $row => $value)
                {
                if($t > 9) $t = 0;
                $rows[$t][] = $value;
                $t++;
                }

                foreach ($rows as $value)
                {
                echo '<div class="row">';
                foreach ($value as $row)
                {
                echo '<div class="col-xs-12 col-sm-6 col-md-3 js_shop"><div class="shop-block">';

                //вывод изображений товара
                if (!empty($row["img"]))
                {
                echo '<div class="shop_img shop-photo">';
                foreach ($row["img"] as $img)
                {
                switch ($img["type"])
                {
                case 'animation':
                echo '<a href="'.BASE_PATH.$img["link"].'" rel="prettyPhoto[gallery'.$row["id"].'shop]">';
                break;
                case 'large_image':
                echo '<a href="'.BASE_PATH.$img["link"].'" rel="large_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'">';
                break;
                default:
                echo '<a href="'.BASE_PATH_HREF.$img["link"].'">';
                break;
                }
                echo '<img src="'.$img["src"].'" alt="'.$img["alt"].'" title="'.$img["title"].'" image_id="'.$img["id"].'" class="img-responsive img-thumbnail js_shop_img">';
                echo '<span class="shop-photo-labels">';
                if (!empty($row['hit']))
                {
                echo '<img src="' . BASE_PATH . Custom::path('img/label_hot.png').'"/>';
                }
                if (!empty($row['action']))
                {
                echo '<img src="' . BASE_PATH . Custom::path('img/label_special.png').'"/>';
                }
                if (!empty($row['new']))
                {
                echo '<img src="' . BASE_PATH . Custom::path('img/label_new.png').'"/>';
                }
                echo '</span>';
                echo '</a> ';
                }
                echo '<span class="js_shop_wishlist shop_wishlist shop-like'.(! empty($row["wish"]) ? ' active' : '').'">&nbsp;</span>';

                echo '</div>';
                }

                //вывод названия и ссылки на товара
                echo '<a href="'.BASE_PATH_HREF.$row["link"].'" class="shop-item-title">'.$row["name"].'</a>';
                //рейтинг товара
                if (!empty($row["rating"]))
                {
                echo ' '.$row["rating"];
                }

                //вывод краткого описания товара
                if (!empty($row["anons"]))
                {
                echo '<div class="shop_anons">'.$this->htmleditor($row['anons']).'</div>';
                }

                //вывод производителя
                if (!empty($row["brand"]))
                {
                echo '<div class="shop_brand">';
                echo $this->diafan->_('Производитель').': ';
                echo '<a href="'.BASE_PATH_HREF.$row["brand"]["link"].'">'.$row["brand"]["name"].'</a>';
                echo '</div>';
                }

                //вывод артикула
                if (!empty($row["article"]))
                {
                echo '<div class="shop_article">';
                echo $this->diafan->_('Артикул').': ';
                echo '<span class="shop_article_value">'.$row["article"].'</span>';
                echo '</div>';
                }

                //вывод параметров товара
                if (!empty($row["param"]))
                {
                echo $this->get('param', 'shop', array("rows" => $row["param"], "id" => $row["id"]));
                }

                //вывод скидки на товар
                if (!empty($row["discount"]))
                {
                echo '<div class="shop_discount">'.$this->diafan->_('Скидка').': <span class="shop_discount_value">'.$row["discount"].' '.$row["discount_currency"].($row["discount_finish"] ? ' ('.$this->diafan->_('до').' '.$row["discount_finish"].')' : '').'</span></div>';
                }

                //теги товара
                if (!empty($row["tags"]))
                {
                echo $row["tags"];
                }

                //вывод кнопки "Купить"
                echo $this->get('buy_form', 'shop', array("row" => $row, "result" => $result));

                if(empty($result["hide_compare"]))
                {
                echo $this->get('compare_form', 'shop', $row);
                }

                echo '</div></div>';
                }
                echo '</div>';
                }
                echo '</div>';
                }
              • 12 марта 2015 г.
              • попробуйте так
                Код

                <?php
                /**
                * Шаблон списка товаров
                *
                * @package DIAFAN.CMS
                * @author diafan.ru
                * @version 5.4
                * @license http://www.diafan.ru/license.html
                * @copyright Copyright (c) 2003-2015 OOO «Диафан» (http://www.diafan.ru/)
                */
                if (!defined('DIAFAN'))
                {
                include dirname(dirname(dirname(__FILE__))).'/includes/404.php';
                }

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

                echo '<div class="shop-pane">';

                $rows = $result["rows"];

                $t = 0;
                foreach ($rows as $row)
                {
                if (!$t) {
                echo '<div class="row">';
                }

                echo '<div class="col-xs-12 col-sm-6 col-md-3 js_shop"><div class="shop-block">';

                //вывод изображений товара
                if (!empty($row["img"]))
                {
                echo '<div class="shop_img shop-photo">';
                foreach ($row["img"] as $img)
                {
                switch ($img["type"])
                {
                case 'animation':
                echo '<a href="'.BASE_PATH.$img["link"].'" rel="prettyPhoto[gallery'.$row["id"].'shop]">';
                break;
                case 'large_image':
                echo '<a href="'.BASE_PATH.$img["link"].'" rel="large_image" width="'.$img["link_width"].'" height="'.$img["link_height"].'">';
                break;
                default:
                echo '<a href="'.BASE_PATH_HREF.$img["link"].'">';
                break;
                }
                echo '<img src="'.$img["src"].'" alt="'.$img["alt"].'" title="'.$img["title"].'" image_id="'.$img["id"].'" class="img-responsive img-thumbnail js_shop_img">';
                echo '<span class="shop-photo-labels">';
                if (!empty($row['hit']))
                {
                echo '<img src="' . BASE_PATH . Custom::path('img/label_hot.png').'"/>';
                }
                if (!empty($row['action']))
                {
                echo '<img src="' . BASE_PATH . Custom::path('img/label_special.png').'"/>';
                }
                if (!empty($row['new']))
                {
                echo '<img src="' . BASE_PATH . Custom::path('img/label_new.png').'"/>';
                }
                echo '</span>';
                echo '</a> ';
                }
                echo '<span class="js_shop_wishlist shop_wishlist shop-like'.(! empty($row["wish"]) ? ' active' : '').'">&nbsp;</span>';

                echo '</div>';
                }

                //вывод названия и ссылки на товара
                echo '<a href="'.BASE_PATH_HREF.$row["link"].'" class="shop-item-title">'.$row["name"].'</a>';
                //рейтинг товара
                if (!empty($row["rating"]))
                {
                echo ' '.$row["rating"];
                }

                //вывод краткого описания товара
                if (!empty($row["anons"]))
                {
                echo '<div class="shop_anons">'.$this->htmleditor($row['anons']).'</div>';
                }

                //вывод производителя
                if (!empty($row["brand"]))
                {
                echo '<div class="shop_brand">';
                echo $this->diafan->_('Производитель').': ';
                echo '<a href="'.BASE_PATH_HREF.$row["brand"]["link"].'">'.$row["brand"]["name"].'</a>';
                echo '</div>';
                }

                //вывод артикула
                if (!empty($row["article"]))
                {
                echo '<div class="shop_article">';
                echo $this->diafan->_('Артикул').': ';
                echo '<span class="shop_article_value">'.$row["article"].'</span>';
                echo '</div>';
                }

                //вывод параметров товара
                if (!empty($row["param"]))
                {
                echo $this->get('param', 'shop', array("rows" => $row["param"], "id" => $row["id"]));
                }

                //вывод скидки на товар
                if (!empty($row["discount"]))
                {
                echo '<div class="shop_discount">'.$this->diafan->_('Скидка').': <span class="shop_discount_value">'.$row["discount"].' '.$row["discount_currency"].($row["discount_finish"] ? ' ('.$this->diafan->_('до').' '.$row["discount_finish"].')' : '').'</span></div>';
                }

                //теги товара
                if (!empty($row["tags"]))
                {
                echo $row["tags"];
                }

                //вывод кнопки "Купить"
                echo $this->get('buy_form', 'shop', array("row" => $row, "result" => $result));

                if(empty($result["hide_compare"]))
                {
                echo $this->get('compare_form', 'shop', $row);
                }

                echo '</div>';

                echo '</div>';

                if ($t==4) {
                echo '</div>';
                $t = 0;
                }

                }
                echo '</div>';
                }
              • 13 марта 2015 г.
              • http://minecraft2pro.ru/catalog/peugeot/206/page3/
                пробовал дивы по разному вставлять что то не але.

                оффтоп - пожалуйста прокомментируйте мои вопросы http://addons.diafan.ru/modules/modules-and-services/customtitles/. хочу приобрести.
              • 13 марта 2015 г.
              • Цитата
                пробовал дивы по разному вставлять что то не але.

                где-то один из div-ов не закрыт, проверьте.
                Цитата
                пожалуйста прокомментируйте мои вопросы

                +

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум