x1ds Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 Добрый день уважаемые форумчане, собственно уже вторые сутки ищу информацию о том как реализовать вывод товаров под категорий в каталог, а именно что бы была такая структура ( это страница категории ) !! Название категории- Название подкатегории 1- - Товар1- - Товар2- Название подкатегории 2- - Товар1- - Товар2- Название подкатегории 3- - Товар1- - Товар2 0 Ответить Цитата Нашел некоторые статьи но для OC 1.5 http://stackoverflow.com/questions/16806652/opencart-sort-products-by-their-subcategory-on-the-category-pageНо так ничего не заработало... Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 попробуйте прекратить искать и начать делать Уровень моих знаний не так высок что бы написать данный модуль Надіслати Поділитися на інших сайтах More sharing options... Gromozybra Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 https://opencartforum.com/topic/41418-товары-блоками/ Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 https://opencartforum.com/topic/41418-товары-блоками/ Модуль к сожалению не для версии 2.x Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 (змінено) Модуль к сожалению не для версии 2.x Особой принципиальной разницы нет. Вот пример. Змінено 18 червня 2016 користувачем mazein Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 Особой принципиальной разницы нет. Вот пример. То что нужно, подскажите что за модуль стоит, либо как реализовали? Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 Реализовано на основе этого примера. Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 (змінено) Для OC2.x это выглядит так: /catalog/controller/product/category.php foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $data['categories'][] = array( 'category_id' => $result['category_id'], /*ДОБАВИТЬ*/ 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } /*ДОБАВИТЬ*/ $data['products_all'] = array(); for( $x = 0; $x < count( $data['categories'] ); $x++ ) { $cat = $data['categories'][ $x ][ 'category_id' ]; $data['products_all'][ $cat ] = array(); $filter_data = array( 'filter_category_id' => $cat, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $data['products_all'][ $cat ][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } } /*ДОБАВИТЬ*/ Вывод подкатегорий я оставил один, убрав условие <5 подкатегорий/catalog/view/theme/default/template/product/category.tpl <?php foreach ($categories as $category) { ?> <div class="row"> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php foreach ( $products_all[ $category['category_id'] ] as $product ) { ?> <div class="product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12"> <div class="product-thumb"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?php if ($product['price']) { ?> <p class="price"> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span> <?php } ?> <?php if ($product['tax']) { ?> <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span> <?php } ?> </p> <?php } ?> </div> <div class="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> </div> <?php } ?> </div> <?php } ?> Вывод кнопок сетка/список и фильтров уже сами. Змінено 18 червня 2016 користувачем mazein Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 (змінено) Спасибо огромное !!! Змінено 18 червня 2016 користувачем x1ds Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця [Решено] Вывод товаров под категорий в каталог Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 попробуйте прекратить искать и начать делать Уровень моих знаний не так высок что бы написать данный модуль Надіслати Поділитися на інших сайтах More sharing options... Gromozybra Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 https://opencartforum.com/topic/41418-товары-блоками/ Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 https://opencartforum.com/topic/41418-товары-блоками/ Модуль к сожалению не для версии 2.x Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 (змінено) Модуль к сожалению не для версии 2.x Особой принципиальной разницы нет. Вот пример. Змінено 18 червня 2016 користувачем mazein Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 Особой принципиальной разницы нет. Вот пример. То что нужно, подскажите что за модуль стоит, либо как реализовали? Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 Реализовано на основе этого примера. Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 (змінено) Для OC2.x это выглядит так: /catalog/controller/product/category.php foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $data['categories'][] = array( 'category_id' => $result['category_id'], /*ДОБАВИТЬ*/ 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } /*ДОБАВИТЬ*/ $data['products_all'] = array(); for( $x = 0; $x < count( $data['categories'] ); $x++ ) { $cat = $data['categories'][ $x ][ 'category_id' ]; $data['products_all'][ $cat ] = array(); $filter_data = array( 'filter_category_id' => $cat, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $data['products_all'][ $cat ][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } } /*ДОБАВИТЬ*/ Вывод подкатегорий я оставил один, убрав условие <5 подкатегорий/catalog/view/theme/default/template/product/category.tpl <?php foreach ($categories as $category) { ?> <div class="row"> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php foreach ( $products_all[ $category['category_id'] ] as $product ) { ?> <div class="product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12"> <div class="product-thumb"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?php if ($product['price']) { ?> <p class="price"> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span> <?php } ?> <?php if ($product['tax']) { ?> <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span> <?php } ?> </p> <?php } ?> </div> <div class="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> </div> <?php } ?> </div> <?php } ?> Вывод кнопок сетка/список и фильтров уже сами. Змінено 18 червня 2016 користувачем mazein Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 (змінено) Спасибо огромное !!! Змінено 18 червня 2016 користувачем x1ds Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця [Решено] Вывод товаров под категорий в каталог Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Gromozybra Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 https://opencartforum.com/topic/41418-товары-блоками/ Надіслати Поділитися на інших сайтах More sharing options...
x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 https://opencartforum.com/topic/41418-товары-блоками/ Модуль к сожалению не для версии 2.x Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 (змінено) Модуль к сожалению не для версии 2.x Особой принципиальной разницы нет. Вот пример. Змінено 18 червня 2016 користувачем mazein Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 Особой принципиальной разницы нет. Вот пример. То что нужно, подскажите что за модуль стоит, либо как реализовали? Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 Реализовано на основе этого примера. Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 (змінено) Для OC2.x это выглядит так: /catalog/controller/product/category.php foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $data['categories'][] = array( 'category_id' => $result['category_id'], /*ДОБАВИТЬ*/ 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } /*ДОБАВИТЬ*/ $data['products_all'] = array(); for( $x = 0; $x < count( $data['categories'] ); $x++ ) { $cat = $data['categories'][ $x ][ 'category_id' ]; $data['products_all'][ $cat ] = array(); $filter_data = array( 'filter_category_id' => $cat, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $data['products_all'][ $cat ][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } } /*ДОБАВИТЬ*/ Вывод подкатегорий я оставил один, убрав условие <5 подкатегорий/catalog/view/theme/default/template/product/category.tpl <?php foreach ($categories as $category) { ?> <div class="row"> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php foreach ( $products_all[ $category['category_id'] ] as $product ) { ?> <div class="product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12"> <div class="product-thumb"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?php if ($product['price']) { ?> <p class="price"> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span> <?php } ?> <?php if ($product['tax']) { ?> <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span> <?php } ?> </p> <?php } ?> </div> <div class="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> </div> <?php } ?> </div> <?php } ?> Вывод кнопок сетка/список и фильтров уже сами. Змінено 18 червня 2016 користувачем mazein Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 (змінено) Спасибо огромное !!! Змінено 18 червня 2016 користувачем x1ds Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця [Решено] Вывод товаров под категорий в каталог Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 (змінено) Модуль к сожалению не для версии 2.x Особой принципиальной разницы нет. Вот пример. Змінено 18 червня 2016 користувачем mazein Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 Особой принципиальной разницы нет. Вот пример. То что нужно, подскажите что за модуль стоит, либо как реализовали? Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 Реализовано на основе этого примера. Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 (змінено) Для OC2.x это выглядит так: /catalog/controller/product/category.php foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $data['categories'][] = array( 'category_id' => $result['category_id'], /*ДОБАВИТЬ*/ 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } /*ДОБАВИТЬ*/ $data['products_all'] = array(); for( $x = 0; $x < count( $data['categories'] ); $x++ ) { $cat = $data['categories'][ $x ][ 'category_id' ]; $data['products_all'][ $cat ] = array(); $filter_data = array( 'filter_category_id' => $cat, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $data['products_all'][ $cat ][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } } /*ДОБАВИТЬ*/ Вывод подкатегорий я оставил один, убрав условие <5 подкатегорий/catalog/view/theme/default/template/product/category.tpl <?php foreach ($categories as $category) { ?> <div class="row"> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php foreach ( $products_all[ $category['category_id'] ] as $product ) { ?> <div class="product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12"> <div class="product-thumb"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?php if ($product['price']) { ?> <p class="price"> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span> <?php } ?> <?php if ($product['tax']) { ?> <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span> <?php } ?> </p> <?php } ?> </div> <div class="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> </div> <?php } ?> </div> <?php } ?> Вывод кнопок сетка/список и фильтров уже сами. Змінено 18 червня 2016 користувачем mazein Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 (змінено) Спасибо огромное !!! Змінено 18 червня 2016 користувачем x1ds Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця [Решено] Вывод товаров под категорий в каталог Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 Особой принципиальной разницы нет. Вот пример. То что нужно, подскажите что за модуль стоит, либо как реализовали? Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 Реализовано на основе этого примера. Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 (змінено) Для OC2.x это выглядит так: /catalog/controller/product/category.php foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $data['categories'][] = array( 'category_id' => $result['category_id'], /*ДОБАВИТЬ*/ 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } /*ДОБАВИТЬ*/ $data['products_all'] = array(); for( $x = 0; $x < count( $data['categories'] ); $x++ ) { $cat = $data['categories'][ $x ][ 'category_id' ]; $data['products_all'][ $cat ] = array(); $filter_data = array( 'filter_category_id' => $cat, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $data['products_all'][ $cat ][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } } /*ДОБАВИТЬ*/ Вывод подкатегорий я оставил один, убрав условие <5 подкатегорий/catalog/view/theme/default/template/product/category.tpl <?php foreach ($categories as $category) { ?> <div class="row"> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php foreach ( $products_all[ $category['category_id'] ] as $product ) { ?> <div class="product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12"> <div class="product-thumb"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?php if ($product['price']) { ?> <p class="price"> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span> <?php } ?> <?php if ($product['tax']) { ?> <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span> <?php } ?> </p> <?php } ?> </div> <div class="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> </div> <?php } ?> </div> <?php } ?> Вывод кнопок сетка/список и фильтров уже сами. Змінено 18 червня 2016 користувачем mazein Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 (змінено) Спасибо огромное !!! Змінено 18 червня 2016 користувачем x1ds Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця [Решено] Вывод товаров под категорий в каталог Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 Реализовано на основе этого примера. Надіслати Поділитися на інших сайтах More sharing options... mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 (змінено) Для OC2.x это выглядит так: /catalog/controller/product/category.php foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $data['categories'][] = array( 'category_id' => $result['category_id'], /*ДОБАВИТЬ*/ 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } /*ДОБАВИТЬ*/ $data['products_all'] = array(); for( $x = 0; $x < count( $data['categories'] ); $x++ ) { $cat = $data['categories'][ $x ][ 'category_id' ]; $data['products_all'][ $cat ] = array(); $filter_data = array( 'filter_category_id' => $cat, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $data['products_all'][ $cat ][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } } /*ДОБАВИТЬ*/ Вывод подкатегорий я оставил один, убрав условие <5 подкатегорий/catalog/view/theme/default/template/product/category.tpl <?php foreach ($categories as $category) { ?> <div class="row"> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php foreach ( $products_all[ $category['category_id'] ] as $product ) { ?> <div class="product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12"> <div class="product-thumb"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?php if ($product['price']) { ?> <p class="price"> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span> <?php } ?> <?php if ($product['tax']) { ?> <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span> <?php } ?> </p> <?php } ?> </div> <div class="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> </div> <?php } ?> </div> <?php } ?> Вывод кнопок сетка/список и фильтров уже сами. Змінено 18 червня 2016 користувачем mazein Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 (змінено) Спасибо огромное !!! Змінено 18 червня 2016 користувачем x1ds Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Opencart 2.x Opencart 2.x: Пісочниця [Решено] Вывод товаров под категорий в каталог
mazein Опубліковано: 18 червня 2016 Share Опубліковано: 18 червня 2016 (змінено) Для OC2.x это выглядит так: /catalog/controller/product/category.php foreach ($results as $result) { $filter_data = array( 'filter_category_id' => $result['category_id'], 'filter_sub_category' => true ); $data['categories'][] = array( 'category_id' => $result['category_id'], /*ДОБАВИТЬ*/ 'name' => $result['name'] . ($this->config->get('config_product_count') ? ' (' . $this->model_catalog_product->getTotalProducts($filter_data) . ')' : ''), 'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '_' . $result['category_id'] . $url) ); } /*ДОБАВИТЬ*/ $data['products_all'] = array(); for( $x = 0; $x < count( $data['categories'] ); $x++ ) { $cat = $data['categories'][ $x ][ 'category_id' ]; $data['products_all'][ $cat ] = array(); $filter_data = array( 'filter_category_id' => $cat, 'sort' => $sort, 'order' => $order, 'start' => ($page - 1) * $limit, 'limit' => $limit ); $product_total = $this->model_catalog_product->getTotalProducts($filter_data); $results = $this->model_catalog_product->getProducts($filter_data); foreach ($results as $result) { if ($result['image']) { $image = $this->model_tool_image->resize($result['image'], $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } else { $image = $this->model_tool_image->resize('placeholder.png', $this->config->get('config_image_product_width'), $this->config->get('config_image_product_height')); } if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) { $price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $price = false; } if ((float)$result['special']) { $special = $this->currency->format($this->tax->calculate($result['special'], $result['tax_class_id'], $this->config->get('config_tax'))); } else { $special = false; } if ($this->config->get('config_tax')) { $tax = $this->currency->format((float)$result['special'] ? $result['special'] : $result['price']); } else { $tax = false; } if ($this->config->get('config_review_status')) { $rating = (int)$result['rating']; } else { $rating = false; } $data['products_all'][ $cat ][] = array( 'product_id' => $result['product_id'], 'thumb' => $image, 'name' => $result['name'], 'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..', 'price' => $price, 'special' => $special, 'tax' => $tax, 'minimum' => $result['minimum'] > 0 ? $result['minimum'] : 1, 'rating' => $result['rating'], 'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url) ); } } /*ДОБАВИТЬ*/ Вывод подкатегорий я оставил один, убрав условие <5 подкатегорий/catalog/view/theme/default/template/product/category.tpl <?php foreach ($categories as $category) { ?> <div class="row"> <li><a href="<?php echo $category['href']; ?>"><?php echo $category['name']; ?></a></li> <?php foreach ( $products_all[ $category['category_id'] ] as $product ) { ?> <div class="product-layout product-grid col-lg-4 col-md-4 col-sm-6 col-xs-12"> <div class="product-thumb"> <div class="image"><a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-responsive" /></a></div> <div> <div class="caption"> <h4><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a></h4> <p><?php echo $product['description']; ?></p> <?php if ($product['rating']) { ?> <div class="rating"> <?php for ($i = 1; $i <= 5; $i++) { ?> <?php if ($product['rating'] < $i) { ?> <span class="fa fa-stack"><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } else { ?> <span class="fa fa-stack"><i class="fa fa-star fa-stack-2x"></i><i class="fa fa-star-o fa-stack-2x"></i></span> <?php } ?> <?php } ?> </div> <?php } ?> <?php if ($product['price']) { ?> <p class="price"> <?php if (!$product['special']) { ?> <?php echo $product['price']; ?> <?php } else { ?> <span class="price-new"><?php echo $product['special']; ?></span> <span class="price-old"><?php echo $product['price']; ?></span> <?php } ?> <?php if ($product['tax']) { ?> <span class="price-tax"><?php echo $text_tax; ?> <?php echo $product['tax']; ?></span> <?php } ?> </p> <?php } ?> </div> <div class="button-group"> <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>', '<?php echo $product['minimum']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button> <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button> </div> </div> </div> </div> <?php } ?> </div> <?php } ?> Вывод кнопок сетка/список и фильтров уже сами. Змінено 18 червня 2016 користувачем mazein Надіслати Поділитися на інших сайтах More sharing options... x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 (змінено) Спасибо огромное !!! Змінено 18 червня 2016 користувачем x1ds Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
x1ds Опубліковано: 18 червня 2016 Автор Share Опубліковано: 18 червня 2016 (змінено) Спасибо огромное !!! Змінено 18 червня 2016 користувачем x1ds Надіслати Поділитися на інших сайтах More sharing options... Ця тема закрита для публікації повідомлень. Share More sharing options... Передплатники 0
Recommended Posts