trampich Опубліковано: 24 лютого 2011 Share Опубліковано: 24 лютого 2011 Всем привет! В категории товаров нужна сортировка по производителям. Копал не нашёл. Что посоветуете? Надіслати Поділитися на інших сайтах More sharing options...
afwollis Опубліковано: 24 лютого 2011 Share Опубліковано: 24 лютого 2011 Если с английским дружите, то вот на оф.сайте мой пост с howto-файлом: Re: [MOD] Filtering product by manufacturers in categories 1 Надіслати Поділитися на інших сайтах More sharing options... trampich Опубліковано: 24 лютого 2011 Автор Share Опубліковано: 24 лютого 2011 Сделал всё по инструкции, но товары показывает все сразу. ocStore v0.1.7 (OpenCart 1.4.9.3) $product_total = $this->model_catalog_product->getTotalProductsByCategoryId($category_id, $curr_manufacturer);проробатывает отлично, показывая количествоно $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'), $curr_manufacturer);косячит :( Надіслати Поділитися на інших сайтах More sharing options... 19th Опубліковано: 24 лютого 2011 Share Опубліковано: 24 лютого 2011 $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'), $curr_manufacturer);косячит :(Ставил на 1.4.9.3 все корректно вроде бы, но у меня демо база. Что именно косячит? Надіслати Поділитися на інших сайтах More sharing options... trampich Опубліковано: 24 лютого 2011 Автор Share Опубліковано: 24 лютого 2011 Ставил на 1.4.9.3 все корректно вроде бы, но у меня демо база. Что именно косячит?У меня тоже демо база, сортировка по цене работает (товары двигаются ну всё стандарно), но когда жму на производителя то ничего не меняется, только снизу какое количество товаров. Например если товар всего 1-ин в категории, показываются и все остальные Надіслати Поділитися на інших сайтах More sharing options... 19th Опубліковано: 24 лютого 2011 Share Опубліковано: 24 лютого 2011 У меня тоже демо база, сортировка по цене работает (товары двигаются ну всё стандарно), но когда жму на производителя то ничего не меняется, только снизу какое количество товаров. Например если товар всего 1-ин в категории, показываются и все остальные Не совсем понял... У меня если товар один в категории, то ни при каких сортировках никакие другие не показываются. Если товаров несколько, то сортировка по проихводителям работает корректно. Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 24 лютого 2011 Share Опубліковано: 24 лютого 2011 Исправил в howto пути к файлу контроллера категорий. Спасибо 19th за репорт. Странно, что никто, из скачавших howto на оф.сайте до этого, не отписался о проблеме. trampich, а хз чо там у вас. Народ вроде пользуется :) да и у меня все эти модификации стоят на хосте "и не жужжат" :D Сайт локально или в инете? Надіслати Поділитися на інших сайтах More sharing options... trampich Опубліковано: 24 лютого 2011 Автор Share Опубліковано: 24 лютого 2011 (змінено) Сайт локальный Змінено 24 лютого 2011 користувачем afwollis overquote detected! Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 24 лютого 2011 Share Опубліковано: 24 лютого 2011 catalog/controller/product/category.phpперед $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'), $curr_manufacturer);вставьте print_r("\$this->model_catalog_product->getProductsByCategoryId(".$category_id.", ".$sort.", ".$order.", (".$page." - 1) * ".$this->config->get('config_catalog_limit').", ".$this->config->get('config_catalog_limit').", ".$curr_manufacturer.")");зайдите в категорию.вверху страницы появится строчка, типа такой $this->model_catalog_product->getProductsByCategoryId(18, p.sort_order, ASC, (1 - 1) * 4, 4, 0)скопируйте её в сообщение.выберите какого-нибудь производителя в списке фильтрации и скопируйте снова строчку вверху страницы. Не забудьте подписать "ху-из-ху", т.е. какая строка от каких действий. Ну и до кучи после этого откройте файл catalog/model/catalog/product.phpв функции public function getProductsByCategoryId($category_id, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20, $manufacturer_id=0) {перед $query = $this->db->query($sql);вставьте print_r($sql);и выберите какого-нибудь производителя в списке фильтрации.скопируйте выхлоп (многа-букафф) вверху сайта и также выложите в сообщении. Надіслати Поділитися на інших сайтах More sharing options... mica Опубліковано: 25 лютого 2011 Share Опубліковано: 25 лютого 2011 поругайте меня, но может быть, имеет смысл слить сортировки по ценам,произв-лям, рейтингу... с фильтром в категориях Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 25 лютого 2011 Share Опубліковано: 25 лютого 2011 (змінено) Поругал :D У меня кроме рейтинга все так и сделано изначально :ph34r: Змінено 25 лютого 2011 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... mica Опубліковано: 25 лютого 2011 Share Опубліковано: 25 лютого 2011 У меня так и сделано изначально :ph34r: ну а кто-то пляшет от "Openstore_module_product_filter_1.0_(clean_install)"... Надіслати Поділитися на інших сайтах More sharing options... trampich Опубліковано: 26 лютого 2011 Автор Share Опубліковано: 26 лютого 2011 (змінено) В одной из категорий $this->model_catalog_product->getProductsByCategoryId(20, p.sort_order, ASC, (1 - 1) * 20, 20, 0)Выбран один из производителей $this->model_catalog_product->getProductsByCategoryId(24, p.sort_order, ASC, (1 - 1) * 20, 20, 5)Скриншот ... МногоБукаВ $this->model_catalog_product->getProductsByCategoryId(24, p.sort_order, ASC, (1 - 1) * 20, 20, 5)SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM oc_review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN oc_stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '1' AND p2s.store_id = '0' AND ss.language_id = '1' AND p2c.category_id = '24' ORDER BY p.sort_order ASC LIMIT 0,20Скриншот ... Змінено 26 лютого 2011 користувачем afwollis убрал "многабукаф" в цитату. чтобы читать удобнее было Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 26 лютого 2011 Share Опубліковано: 26 лютого 2011 нет условия для выбора производителя. Add === /* filter by manufacturer id - start */ if ($manufacturer_id > 0) { $sql .= " AND p.manufacturer_id = '".$manufacturer_id."'"; } /* filter by manufacturer id - end */ === BEFORE === $sort_data = array( 'pd.name', 'p.sort_order', 'special', 'rating', 'p.price', 'p.model' ); ===внимательно пересмотрите HOWTO Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... Lector Опубліковано: 16 березня 2011 Share Опубліковано: 16 березня 2011 Отличное дополнение!!! Но, пожалуйста подскажите, возможно ли сделать так, чтобы после выбора производителя осуществлялась сортировка по имени, цене, модели и т.д. только в товарах выбранного производителя, а не по всем товарам категории, как это происходит сейчас??? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... sumolex Опубліковано: 29 березня 2011 Share Опубліковано: 29 березня 2011 нет условия для выбора производителя. Add === /* filter by manufacturer id - start */ if ($manufacturer_id > 0) { $sql .= " AND p.manufacturer_id = '".$manufacturer_id."'"; } /* filter by manufacturer id - end */ === BEFORE === $sort_data = array( 'pd.name', 'p.sort_order', 'special', 'rating', 'p.price', 'p.model' ); ===внимательно пересмотрите HOWTO А что если $this->model_catalog_product->getProductsByCategoryId(703, pd.name, ASC, (1 - 1) * , , 113) и SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '5' AND ss.language_id = '5' AND p2c.category_id = '703' AND p.manufacturer_id = '113' ORDER BY pd.name ASC LIMIT 0,12 При этом пришлось прописать жестко: $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * 12, 12, $curr_manufacturer); вместо $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'), $curr_manufacturer); т.к. во втором случае вообще пусто на странице: SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '5' AND ss.language_id = '5' AND p2c.category_id = '703' AND p.manufacturer_id = '113' ORDER BY pd.name ASC LIMIT 0,0 Подскажите, пожалуйста, в чем ошибка? Надіслати Поділитися на інших сайтах More sharing options... sumolex Опубліковано: 30 березня 2011 Share Опубліковано: 30 березня 2011 Исправил, всем спасибо! :) Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Гість Опубліковано: 1 травня 2011 Share Опубліковано: 1 травня 2011 Вопрос. Возможно ли сделать 2 сортировки товара. тоесть у меня например в магазине есть повторяющая продукция но раного обьема и разные производители. Сейчас при сортировке например по имени получается каша из прозиводителей. идут в разброс. При сортировке по прозводителю идет каша по названию. тоесть 1 продукт может попастя в начале страница и тот же самый в конце списка по производителю. Пробовал разные способы и назначению продуктам порядка но все равно не помогает, вся продукция идет в разброс Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 4 травня 2011 Share Опубліковано: 4 травня 2011 shoma, конечно можно. надо только определиться с данными, по которым должны сортироваться товары и указать соответствующие поля в сортировке в sql-запросе. Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... Artur Опубліковано: 20 травня 2011 Share Опубліковано: 20 травня 2011 Отличное дополнение!!! Но, пожалуйста подскажите, возможно ли сделать так, чтобы после выбора производителя осуществлялась сортировка по имени, цене, модели и т.д. только в товарах выбранного производителя, а не по всем товарам категории, как это происходит сейчас??? Вот меня тоже интересует этот вопрос, помогите, пожалуйста. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 присоединяюсь к Lector и Artur Надіслати Поділитися на інших сайтах More sharing options... Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 решил. открываем catalog/controller/product/category.phpищем $this->data['sorts'] = array();перед этой строкой добавить if (isset($this->request->get['manufacturer'])) { $manu = '&manufacturer=' . $this->request->get['manufacturer']; } else {$manu = '';} находим $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC') ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC') ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC') ); заменяем на $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $manu) ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $manu) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $manu) ); вуаля, сортировка по имени, цене, модели и т.д. работает до или после выбора производителя Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Ritter Опубліковано: 5 жовтня 2011 Share Опубліковано: 5 жовтня 2011 Под 1.5 есть исправления? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... indevor Опубліковано: 19 жовтня 2011 Share Опубліковано: 19 жовтня 2011 Присоединяюсь Ritter, по 1.5 есть рецепт? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Borzoid Опубліковано: 9 грудня 2011 Share Опубліковано: 9 грудня 2011 Сделал вроде все по инструкции но реакция нулевая. Вообще все как и было и даже ошибок не выдает. Скорее все в catalog/model/catalog/product.php накосячил. Там мне не совсем понятно было куда вставлять функцию Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Модулі та розширення Дополнительная сортировка Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
trampich Опубліковано: 24 лютого 2011 Автор Share Опубліковано: 24 лютого 2011 Сделал всё по инструкции, но товары показывает все сразу. ocStore v0.1.7 (OpenCart 1.4.9.3) $product_total = $this->model_catalog_product->getTotalProductsByCategoryId($category_id, $curr_manufacturer);проробатывает отлично, показывая количествоно $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'), $curr_manufacturer);косячит :( Надіслати Поділитися на інших сайтах More sharing options...
19th Опубліковано: 24 лютого 2011 Share Опубліковано: 24 лютого 2011 $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'), $curr_manufacturer);косячит :(Ставил на 1.4.9.3 все корректно вроде бы, но у меня демо база. Что именно косячит? Надіслати Поділитися на інших сайтах More sharing options...
trampich Опубліковано: 24 лютого 2011 Автор Share Опубліковано: 24 лютого 2011 Ставил на 1.4.9.3 все корректно вроде бы, но у меня демо база. Что именно косячит?У меня тоже демо база, сортировка по цене работает (товары двигаются ну всё стандарно), но когда жму на производителя то ничего не меняется, только снизу какое количество товаров. Например если товар всего 1-ин в категории, показываются и все остальные Надіслати Поділитися на інших сайтах More sharing options...
19th Опубліковано: 24 лютого 2011 Share Опубліковано: 24 лютого 2011 У меня тоже демо база, сортировка по цене работает (товары двигаются ну всё стандарно), но когда жму на производителя то ничего не меняется, только снизу какое количество товаров. Например если товар всего 1-ин в категории, показываются и все остальные Не совсем понял... У меня если товар один в категории, то ни при каких сортировках никакие другие не показываются. Если товаров несколько, то сортировка по проихводителям работает корректно. Надіслати Поділитися на інших сайтах More sharing options...
afwollis Опубліковано: 24 лютого 2011 Share Опубліковано: 24 лютого 2011 Исправил в howto пути к файлу контроллера категорий. Спасибо 19th за репорт. Странно, что никто, из скачавших howto на оф.сайте до этого, не отписался о проблеме. trampich, а хз чо там у вас. Народ вроде пользуется :) да и у меня все эти модификации стоят на хосте "и не жужжат" :D Сайт локально или в инете? Надіслати Поділитися на інших сайтах More sharing options... trampich Опубліковано: 24 лютого 2011 Автор Share Опубліковано: 24 лютого 2011 (змінено) Сайт локальный Змінено 24 лютого 2011 користувачем afwollis overquote detected! Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 24 лютого 2011 Share Опубліковано: 24 лютого 2011 catalog/controller/product/category.phpперед $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'), $curr_manufacturer);вставьте print_r("\$this->model_catalog_product->getProductsByCategoryId(".$category_id.", ".$sort.", ".$order.", (".$page." - 1) * ".$this->config->get('config_catalog_limit').", ".$this->config->get('config_catalog_limit').", ".$curr_manufacturer.")");зайдите в категорию.вверху страницы появится строчка, типа такой $this->model_catalog_product->getProductsByCategoryId(18, p.sort_order, ASC, (1 - 1) * 4, 4, 0)скопируйте её в сообщение.выберите какого-нибудь производителя в списке фильтрации и скопируйте снова строчку вверху страницы. Не забудьте подписать "ху-из-ху", т.е. какая строка от каких действий. Ну и до кучи после этого откройте файл catalog/model/catalog/product.phpв функции public function getProductsByCategoryId($category_id, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20, $manufacturer_id=0) {перед $query = $this->db->query($sql);вставьте print_r($sql);и выберите какого-нибудь производителя в списке фильтрации.скопируйте выхлоп (многа-букафф) вверху сайта и также выложите в сообщении. Надіслати Поділитися на інших сайтах More sharing options... mica Опубліковано: 25 лютого 2011 Share Опубліковано: 25 лютого 2011 поругайте меня, но может быть, имеет смысл слить сортировки по ценам,произв-лям, рейтингу... с фильтром в категориях Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 25 лютого 2011 Share Опубліковано: 25 лютого 2011 (змінено) Поругал :D У меня кроме рейтинга все так и сделано изначально :ph34r: Змінено 25 лютого 2011 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... mica Опубліковано: 25 лютого 2011 Share Опубліковано: 25 лютого 2011 У меня так и сделано изначально :ph34r: ну а кто-то пляшет от "Openstore_module_product_filter_1.0_(clean_install)"... Надіслати Поділитися на інших сайтах More sharing options... trampich Опубліковано: 26 лютого 2011 Автор Share Опубліковано: 26 лютого 2011 (змінено) В одной из категорий $this->model_catalog_product->getProductsByCategoryId(20, p.sort_order, ASC, (1 - 1) * 20, 20, 0)Выбран один из производителей $this->model_catalog_product->getProductsByCategoryId(24, p.sort_order, ASC, (1 - 1) * 20, 20, 5)Скриншот ... МногоБукаВ $this->model_catalog_product->getProductsByCategoryId(24, p.sort_order, ASC, (1 - 1) * 20, 20, 5)SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM oc_review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN oc_stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '1' AND p2s.store_id = '0' AND ss.language_id = '1' AND p2c.category_id = '24' ORDER BY p.sort_order ASC LIMIT 0,20Скриншот ... Змінено 26 лютого 2011 користувачем afwollis убрал "многабукаф" в цитату. чтобы читать удобнее было Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 26 лютого 2011 Share Опубліковано: 26 лютого 2011 нет условия для выбора производителя. Add === /* filter by manufacturer id - start */ if ($manufacturer_id > 0) { $sql .= " AND p.manufacturer_id = '".$manufacturer_id."'"; } /* filter by manufacturer id - end */ === BEFORE === $sort_data = array( 'pd.name', 'p.sort_order', 'special', 'rating', 'p.price', 'p.model' ); ===внимательно пересмотрите HOWTO Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... Lector Опубліковано: 16 березня 2011 Share Опубліковано: 16 березня 2011 Отличное дополнение!!! Но, пожалуйста подскажите, возможно ли сделать так, чтобы после выбора производителя осуществлялась сортировка по имени, цене, модели и т.д. только в товарах выбранного производителя, а не по всем товарам категории, как это происходит сейчас??? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... sumolex Опубліковано: 29 березня 2011 Share Опубліковано: 29 березня 2011 нет условия для выбора производителя. Add === /* filter by manufacturer id - start */ if ($manufacturer_id > 0) { $sql .= " AND p.manufacturer_id = '".$manufacturer_id."'"; } /* filter by manufacturer id - end */ === BEFORE === $sort_data = array( 'pd.name', 'p.sort_order', 'special', 'rating', 'p.price', 'p.model' ); ===внимательно пересмотрите HOWTO А что если $this->model_catalog_product->getProductsByCategoryId(703, pd.name, ASC, (1 - 1) * , , 113) и SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '5' AND ss.language_id = '5' AND p2c.category_id = '703' AND p.manufacturer_id = '113' ORDER BY pd.name ASC LIMIT 0,12 При этом пришлось прописать жестко: $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * 12, 12, $curr_manufacturer); вместо $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'), $curr_manufacturer); т.к. во втором случае вообще пусто на странице: SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '5' AND ss.language_id = '5' AND p2c.category_id = '703' AND p.manufacturer_id = '113' ORDER BY pd.name ASC LIMIT 0,0 Подскажите, пожалуйста, в чем ошибка? Надіслати Поділитися на інших сайтах More sharing options... sumolex Опубліковано: 30 березня 2011 Share Опубліковано: 30 березня 2011 Исправил, всем спасибо! :) Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Гість Опубліковано: 1 травня 2011 Share Опубліковано: 1 травня 2011 Вопрос. Возможно ли сделать 2 сортировки товара. тоесть у меня например в магазине есть повторяющая продукция но раного обьема и разные производители. Сейчас при сортировке например по имени получается каша из прозиводителей. идут в разброс. При сортировке по прозводителю идет каша по названию. тоесть 1 продукт может попастя в начале страница и тот же самый в конце списка по производителю. Пробовал разные способы и назначению продуктам порядка но все равно не помогает, вся продукция идет в разброс Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 4 травня 2011 Share Опубліковано: 4 травня 2011 shoma, конечно можно. надо только определиться с данными, по которым должны сортироваться товары и указать соответствующие поля в сортировке в sql-запросе. Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... Artur Опубліковано: 20 травня 2011 Share Опубліковано: 20 травня 2011 Отличное дополнение!!! Но, пожалуйста подскажите, возможно ли сделать так, чтобы после выбора производителя осуществлялась сортировка по имени, цене, модели и т.д. только в товарах выбранного производителя, а не по всем товарам категории, как это происходит сейчас??? Вот меня тоже интересует этот вопрос, помогите, пожалуйста. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 присоединяюсь к Lector и Artur Надіслати Поділитися на інших сайтах More sharing options... Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 решил. открываем catalog/controller/product/category.phpищем $this->data['sorts'] = array();перед этой строкой добавить if (isset($this->request->get['manufacturer'])) { $manu = '&manufacturer=' . $this->request->get['manufacturer']; } else {$manu = '';} находим $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC') ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC') ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC') ); заменяем на $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $manu) ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $manu) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $manu) ); вуаля, сортировка по имени, цене, модели и т.д. работает до или после выбора производителя Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Ritter Опубліковано: 5 жовтня 2011 Share Опубліковано: 5 жовтня 2011 Под 1.5 есть исправления? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... indevor Опубліковано: 19 жовтня 2011 Share Опубліковано: 19 жовтня 2011 Присоединяюсь Ritter, по 1.5 есть рецепт? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Borzoid Опубліковано: 9 грудня 2011 Share Опубліковано: 9 грудня 2011 Сделал вроде все по инструкции но реакция нулевая. Вообще все как и было и даже ошибок не выдает. Скорее все в catalog/model/catalog/product.php накосячил. Там мне не совсем понятно было куда вставлять функцию Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Модулі та розширення Дополнительная сортировка Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
trampich Опубліковано: 24 лютого 2011 Автор Share Опубліковано: 24 лютого 2011 (змінено) Сайт локальный Змінено 24 лютого 2011 користувачем afwollis overquote detected! Надіслати Поділитися на інших сайтах More sharing options...
afwollis Опубліковано: 24 лютого 2011 Share Опубліковано: 24 лютого 2011 catalog/controller/product/category.phpперед $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'), $curr_manufacturer);вставьте print_r("\$this->model_catalog_product->getProductsByCategoryId(".$category_id.", ".$sort.", ".$order.", (".$page." - 1) * ".$this->config->get('config_catalog_limit').", ".$this->config->get('config_catalog_limit').", ".$curr_manufacturer.")");зайдите в категорию.вверху страницы появится строчка, типа такой $this->model_catalog_product->getProductsByCategoryId(18, p.sort_order, ASC, (1 - 1) * 4, 4, 0)скопируйте её в сообщение.выберите какого-нибудь производителя в списке фильтрации и скопируйте снова строчку вверху страницы. Не забудьте подписать "ху-из-ху", т.е. какая строка от каких действий. Ну и до кучи после этого откройте файл catalog/model/catalog/product.phpв функции public function getProductsByCategoryId($category_id, $sort = 'p.sort_order', $order = 'ASC', $start = 0, $limit = 20, $manufacturer_id=0) {перед $query = $this->db->query($sql);вставьте print_r($sql);и выберите какого-нибудь производителя в списке фильтрации.скопируйте выхлоп (многа-букафф) вверху сайта и также выложите в сообщении. Надіслати Поділитися на інших сайтах More sharing options... mica Опубліковано: 25 лютого 2011 Share Опубліковано: 25 лютого 2011 поругайте меня, но может быть, имеет смысл слить сортировки по ценам,произв-лям, рейтингу... с фильтром в категориях Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 25 лютого 2011 Share Опубліковано: 25 лютого 2011 (змінено) Поругал :D У меня кроме рейтинга все так и сделано изначально :ph34r: Змінено 25 лютого 2011 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... mica Опубліковано: 25 лютого 2011 Share Опубліковано: 25 лютого 2011 У меня так и сделано изначально :ph34r: ну а кто-то пляшет от "Openstore_module_product_filter_1.0_(clean_install)"... Надіслати Поділитися на інших сайтах More sharing options... trampich Опубліковано: 26 лютого 2011 Автор Share Опубліковано: 26 лютого 2011 (змінено) В одной из категорий $this->model_catalog_product->getProductsByCategoryId(20, p.sort_order, ASC, (1 - 1) * 20, 20, 0)Выбран один из производителей $this->model_catalog_product->getProductsByCategoryId(24, p.sort_order, ASC, (1 - 1) * 20, 20, 5)Скриншот ... МногоБукаВ $this->model_catalog_product->getProductsByCategoryId(24, p.sort_order, ASC, (1 - 1) * 20, 20, 5)SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM oc_review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN oc_stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '1' AND p2s.store_id = '0' AND ss.language_id = '1' AND p2c.category_id = '24' ORDER BY p.sort_order ASC LIMIT 0,20Скриншот ... Змінено 26 лютого 2011 користувачем afwollis убрал "многабукаф" в цитату. чтобы читать удобнее было Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 26 лютого 2011 Share Опубліковано: 26 лютого 2011 нет условия для выбора производителя. Add === /* filter by manufacturer id - start */ if ($manufacturer_id > 0) { $sql .= " AND p.manufacturer_id = '".$manufacturer_id."'"; } /* filter by manufacturer id - end */ === BEFORE === $sort_data = array( 'pd.name', 'p.sort_order', 'special', 'rating', 'p.price', 'p.model' ); ===внимательно пересмотрите HOWTO Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... Lector Опубліковано: 16 березня 2011 Share Опубліковано: 16 березня 2011 Отличное дополнение!!! Но, пожалуйста подскажите, возможно ли сделать так, чтобы после выбора производителя осуществлялась сортировка по имени, цене, модели и т.д. только в товарах выбранного производителя, а не по всем товарам категории, как это происходит сейчас??? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... sumolex Опубліковано: 29 березня 2011 Share Опубліковано: 29 березня 2011 нет условия для выбора производителя. Add === /* filter by manufacturer id - start */ if ($manufacturer_id > 0) { $sql .= " AND p.manufacturer_id = '".$manufacturer_id."'"; } /* filter by manufacturer id - end */ === BEFORE === $sort_data = array( 'pd.name', 'p.sort_order', 'special', 'rating', 'p.price', 'p.model' ); ===внимательно пересмотрите HOWTO А что если $this->model_catalog_product->getProductsByCategoryId(703, pd.name, ASC, (1 - 1) * , , 113) и SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '5' AND ss.language_id = '5' AND p2c.category_id = '703' AND p.manufacturer_id = '113' ORDER BY pd.name ASC LIMIT 0,12 При этом пришлось прописать жестко: $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * 12, 12, $curr_manufacturer); вместо $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'), $curr_manufacturer); т.к. во втором случае вообще пусто на странице: SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '5' AND ss.language_id = '5' AND p2c.category_id = '703' AND p.manufacturer_id = '113' ORDER BY pd.name ASC LIMIT 0,0 Подскажите, пожалуйста, в чем ошибка? Надіслати Поділитися на інших сайтах More sharing options... sumolex Опубліковано: 30 березня 2011 Share Опубліковано: 30 березня 2011 Исправил, всем спасибо! :) Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Гість Опубліковано: 1 травня 2011 Share Опубліковано: 1 травня 2011 Вопрос. Возможно ли сделать 2 сортировки товара. тоесть у меня например в магазине есть повторяющая продукция но раного обьема и разные производители. Сейчас при сортировке например по имени получается каша из прозиводителей. идут в разброс. При сортировке по прозводителю идет каша по названию. тоесть 1 продукт может попастя в начале страница и тот же самый в конце списка по производителю. Пробовал разные способы и назначению продуктам порядка но все равно не помогает, вся продукция идет в разброс Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 4 травня 2011 Share Опубліковано: 4 травня 2011 shoma, конечно можно. надо только определиться с данными, по которым должны сортироваться товары и указать соответствующие поля в сортировке в sql-запросе. Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... Artur Опубліковано: 20 травня 2011 Share Опубліковано: 20 травня 2011 Отличное дополнение!!! Но, пожалуйста подскажите, возможно ли сделать так, чтобы после выбора производителя осуществлялась сортировка по имени, цене, модели и т.д. только в товарах выбранного производителя, а не по всем товарам категории, как это происходит сейчас??? Вот меня тоже интересует этот вопрос, помогите, пожалуйста. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 присоединяюсь к Lector и Artur Надіслати Поділитися на інших сайтах More sharing options... Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 решил. открываем catalog/controller/product/category.phpищем $this->data['sorts'] = array();перед этой строкой добавить if (isset($this->request->get['manufacturer'])) { $manu = '&manufacturer=' . $this->request->get['manufacturer']; } else {$manu = '';} находим $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC') ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC') ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC') ); заменяем на $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $manu) ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $manu) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $manu) ); вуаля, сортировка по имени, цене, модели и т.д. работает до или после выбора производителя Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Ritter Опубліковано: 5 жовтня 2011 Share Опубліковано: 5 жовтня 2011 Под 1.5 есть исправления? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... indevor Опубліковано: 19 жовтня 2011 Share Опубліковано: 19 жовтня 2011 Присоединяюсь Ritter, по 1.5 есть рецепт? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Borzoid Опубліковано: 9 грудня 2011 Share Опубліковано: 9 грудня 2011 Сделал вроде все по инструкции но реакция нулевая. Вообще все как и было и даже ошибок не выдает. Скорее все в catalog/model/catalog/product.php накосячил. Там мне не совсем понятно было куда вставлять функцию Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Модулі та розширення Дополнительная сортировка Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
mica Опубліковано: 25 лютого 2011 Share Опубліковано: 25 лютого 2011 поругайте меня, но может быть, имеет смысл слить сортировки по ценам,произв-лям, рейтингу... с фильтром в категориях Надіслати Поділитися на інших сайтах More sharing options...
afwollis Опубліковано: 25 лютого 2011 Share Опубліковано: 25 лютого 2011 (змінено) Поругал :D У меня кроме рейтинга все так и сделано изначально :ph34r: Змінено 25 лютого 2011 користувачем afwollis Надіслати Поділитися на інших сайтах More sharing options... mica Опубліковано: 25 лютого 2011 Share Опубліковано: 25 лютого 2011 У меня так и сделано изначально :ph34r: ну а кто-то пляшет от "Openstore_module_product_filter_1.0_(clean_install)"... Надіслати Поділитися на інших сайтах More sharing options... trampich Опубліковано: 26 лютого 2011 Автор Share Опубліковано: 26 лютого 2011 (змінено) В одной из категорий $this->model_catalog_product->getProductsByCategoryId(20, p.sort_order, ASC, (1 - 1) * 20, 20, 0)Выбран один из производителей $this->model_catalog_product->getProductsByCategoryId(24, p.sort_order, ASC, (1 - 1) * 20, 20, 5)Скриншот ... МногоБукаВ $this->model_catalog_product->getProductsByCategoryId(24, p.sort_order, ASC, (1 - 1) * 20, 20, 5)SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM oc_review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN oc_stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '1' AND p2s.store_id = '0' AND ss.language_id = '1' AND p2c.category_id = '24' ORDER BY p.sort_order ASC LIMIT 0,20Скриншот ... Змінено 26 лютого 2011 користувачем afwollis убрал "многабукаф" в цитату. чтобы читать удобнее было Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 26 лютого 2011 Share Опубліковано: 26 лютого 2011 нет условия для выбора производителя. Add === /* filter by manufacturer id - start */ if ($manufacturer_id > 0) { $sql .= " AND p.manufacturer_id = '".$manufacturer_id."'"; } /* filter by manufacturer id - end */ === BEFORE === $sort_data = array( 'pd.name', 'p.sort_order', 'special', 'rating', 'p.price', 'p.model' ); ===внимательно пересмотрите HOWTO Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... Lector Опубліковано: 16 березня 2011 Share Опубліковано: 16 березня 2011 Отличное дополнение!!! Но, пожалуйста подскажите, возможно ли сделать так, чтобы после выбора производителя осуществлялась сортировка по имени, цене, модели и т.д. только в товарах выбранного производителя, а не по всем товарам категории, как это происходит сейчас??? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... sumolex Опубліковано: 29 березня 2011 Share Опубліковано: 29 березня 2011 нет условия для выбора производителя. Add === /* filter by manufacturer id - start */ if ($manufacturer_id > 0) { $sql .= " AND p.manufacturer_id = '".$manufacturer_id."'"; } /* filter by manufacturer id - end */ === BEFORE === $sort_data = array( 'pd.name', 'p.sort_order', 'special', 'rating', 'p.price', 'p.model' ); ===внимательно пересмотрите HOWTO А что если $this->model_catalog_product->getProductsByCategoryId(703, pd.name, ASC, (1 - 1) * , , 113) и SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '5' AND ss.language_id = '5' AND p2c.category_id = '703' AND p.manufacturer_id = '113' ORDER BY pd.name ASC LIMIT 0,12 При этом пришлось прописать жестко: $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * 12, 12, $curr_manufacturer); вместо $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'), $curr_manufacturer); т.к. во втором случае вообще пусто на странице: SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '5' AND ss.language_id = '5' AND p2c.category_id = '703' AND p.manufacturer_id = '113' ORDER BY pd.name ASC LIMIT 0,0 Подскажите, пожалуйста, в чем ошибка? Надіслати Поділитися на інших сайтах More sharing options... sumolex Опубліковано: 30 березня 2011 Share Опубліковано: 30 березня 2011 Исправил, всем спасибо! :) Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Гість Опубліковано: 1 травня 2011 Share Опубліковано: 1 травня 2011 Вопрос. Возможно ли сделать 2 сортировки товара. тоесть у меня например в магазине есть повторяющая продукция но раного обьема и разные производители. Сейчас при сортировке например по имени получается каша из прозиводителей. идут в разброс. При сортировке по прозводителю идет каша по названию. тоесть 1 продукт может попастя в начале страница и тот же самый в конце списка по производителю. Пробовал разные способы и назначению продуктам порядка но все равно не помогает, вся продукция идет в разброс Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 4 травня 2011 Share Опубліковано: 4 травня 2011 shoma, конечно можно. надо только определиться с данными, по которым должны сортироваться товары и указать соответствующие поля в сортировке в sql-запросе. Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... Artur Опубліковано: 20 травня 2011 Share Опубліковано: 20 травня 2011 Отличное дополнение!!! Но, пожалуйста подскажите, возможно ли сделать так, чтобы после выбора производителя осуществлялась сортировка по имени, цене, модели и т.д. только в товарах выбранного производителя, а не по всем товарам категории, как это происходит сейчас??? Вот меня тоже интересует этот вопрос, помогите, пожалуйста. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 присоединяюсь к Lector и Artur Надіслати Поділитися на інших сайтах More sharing options... Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 решил. открываем catalog/controller/product/category.phpищем $this->data['sorts'] = array();перед этой строкой добавить if (isset($this->request->get['manufacturer'])) { $manu = '&manufacturer=' . $this->request->get['manufacturer']; } else {$manu = '';} находим $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC') ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC') ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC') ); заменяем на $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $manu) ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $manu) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $manu) ); вуаля, сортировка по имени, цене, модели и т.д. работает до или после выбора производителя Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Ritter Опубліковано: 5 жовтня 2011 Share Опубліковано: 5 жовтня 2011 Под 1.5 есть исправления? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... indevor Опубліковано: 19 жовтня 2011 Share Опубліковано: 19 жовтня 2011 Присоединяюсь Ritter, по 1.5 есть рецепт? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Borzoid Опубліковано: 9 грудня 2011 Share Опубліковано: 9 грудня 2011 Сделал вроде все по инструкции но реакция нулевая. Вообще все как и было и даже ошибок не выдает. Скорее все в catalog/model/catalog/product.php накосячил. Там мне не совсем понятно было куда вставлять функцию Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Модулі та розширення Дополнительная сортировка
mica Опубліковано: 25 лютого 2011 Share Опубліковано: 25 лютого 2011 У меня так и сделано изначально :ph34r: ну а кто-то пляшет от "Openstore_module_product_filter_1.0_(clean_install)"... Надіслати Поділитися на інших сайтах More sharing options...
trampich Опубліковано: 26 лютого 2011 Автор Share Опубліковано: 26 лютого 2011 (змінено) В одной из категорий $this->model_catalog_product->getProductsByCategoryId(20, p.sort_order, ASC, (1 - 1) * 20, 20, 0)Выбран один из производителей $this->model_catalog_product->getProductsByCategoryId(24, p.sort_order, ASC, (1 - 1) * 20, 20, 5)Скриншот ... МногоБукаВ $this->model_catalog_product->getProductsByCategoryId(24, p.sort_order, ASC, (1 - 1) * 20, 20, 5)SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM oc_review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN oc_manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN oc_stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '1' AND p2s.store_id = '0' AND ss.language_id = '1' AND p2c.category_id = '24' ORDER BY p.sort_order ASC LIMIT 0,20Скриншот ... Змінено 26 лютого 2011 користувачем afwollis убрал "многабукаф" в цитату. чтобы читать удобнее было Надіслати Поділитися на інших сайтах More sharing options...
afwollis Опубліковано: 26 лютого 2011 Share Опубліковано: 26 лютого 2011 нет условия для выбора производителя. Add === /* filter by manufacturer id - start */ if ($manufacturer_id > 0) { $sql .= " AND p.manufacturer_id = '".$manufacturer_id."'"; } /* filter by manufacturer id - end */ === BEFORE === $sort_data = array( 'pd.name', 'p.sort_order', 'special', 'rating', 'p.price', 'p.model' ); ===внимательно пересмотрите HOWTO Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... Lector Опубліковано: 16 березня 2011 Share Опубліковано: 16 березня 2011 Отличное дополнение!!! Но, пожалуйста подскажите, возможно ли сделать так, чтобы после выбора производителя осуществлялась сортировка по имени, цене, модели и т.д. только в товарах выбранного производителя, а не по всем товарам категории, как это происходит сейчас??? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... sumolex Опубліковано: 29 березня 2011 Share Опубліковано: 29 березня 2011 нет условия для выбора производителя. Add === /* filter by manufacturer id - start */ if ($manufacturer_id > 0) { $sql .= " AND p.manufacturer_id = '".$manufacturer_id."'"; } /* filter by manufacturer id - end */ === BEFORE === $sort_data = array( 'pd.name', 'p.sort_order', 'special', 'rating', 'p.price', 'p.model' ); ===внимательно пересмотрите HOWTO А что если $this->model_catalog_product->getProductsByCategoryId(703, pd.name, ASC, (1 - 1) * , , 113) и SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '5' AND ss.language_id = '5' AND p2c.category_id = '703' AND p.manufacturer_id = '113' ORDER BY pd.name ASC LIMIT 0,12 При этом пришлось прописать жестко: $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * 12, 12, $curr_manufacturer); вместо $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'), $curr_manufacturer); т.к. во втором случае вообще пусто на странице: SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '5' AND ss.language_id = '5' AND p2c.category_id = '703' AND p.manufacturer_id = '113' ORDER BY pd.name ASC LIMIT 0,0 Подскажите, пожалуйста, в чем ошибка? Надіслати Поділитися на інших сайтах More sharing options... sumolex Опубліковано: 30 березня 2011 Share Опубліковано: 30 березня 2011 Исправил, всем спасибо! :) Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Гість Опубліковано: 1 травня 2011 Share Опубліковано: 1 травня 2011 Вопрос. Возможно ли сделать 2 сортировки товара. тоесть у меня например в магазине есть повторяющая продукция но раного обьема и разные производители. Сейчас при сортировке например по имени получается каша из прозиводителей. идут в разброс. При сортировке по прозводителю идет каша по названию. тоесть 1 продукт может попастя в начале страница и тот же самый в конце списка по производителю. Пробовал разные способы и назначению продуктам порядка но все равно не помогает, вся продукция идет в разброс Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 4 травня 2011 Share Опубліковано: 4 травня 2011 shoma, конечно можно. надо только определиться с данными, по которым должны сортироваться товары и указать соответствующие поля в сортировке в sql-запросе. Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... Artur Опубліковано: 20 травня 2011 Share Опубліковано: 20 травня 2011 Отличное дополнение!!! Но, пожалуйста подскажите, возможно ли сделать так, чтобы после выбора производителя осуществлялась сортировка по имени, цене, модели и т.д. только в товарах выбранного производителя, а не по всем товарам категории, как это происходит сейчас??? Вот меня тоже интересует этот вопрос, помогите, пожалуйста. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 присоединяюсь к Lector и Artur Надіслати Поділитися на інших сайтах More sharing options... Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 решил. открываем catalog/controller/product/category.phpищем $this->data['sorts'] = array();перед этой строкой добавить if (isset($this->request->get['manufacturer'])) { $manu = '&manufacturer=' . $this->request->get['manufacturer']; } else {$manu = '';} находим $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC') ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC') ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC') ); заменяем на $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $manu) ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $manu) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $manu) ); вуаля, сортировка по имени, цене, модели и т.д. работает до или после выбора производителя Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Ritter Опубліковано: 5 жовтня 2011 Share Опубліковано: 5 жовтня 2011 Под 1.5 есть исправления? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... indevor Опубліковано: 19 жовтня 2011 Share Опубліковано: 19 жовтня 2011 Присоединяюсь Ritter, по 1.5 есть рецепт? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Borzoid Опубліковано: 9 грудня 2011 Share Опубліковано: 9 грудня 2011 Сделал вроде все по инструкции но реакция нулевая. Вообще все как и было и даже ошибок не выдает. Скорее все в catalog/model/catalog/product.php накосячил. Там мне не совсем понятно было куда вставлять функцию Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
Lector Опубліковано: 16 березня 2011 Share Опубліковано: 16 березня 2011 Отличное дополнение!!! Но, пожалуйста подскажите, возможно ли сделать так, чтобы после выбора производителя осуществлялась сортировка по имени, цене, модели и т.д. только в товарах выбранного производителя, а не по всем товарам категории, как это происходит сейчас??? Надіслати Поділитися на інших сайтах More sharing options...
sumolex Опубліковано: 29 березня 2011 Share Опубліковано: 29 березня 2011 нет условия для выбора производителя. Add === /* filter by manufacturer id - start */ if ($manufacturer_id > 0) { $sql .= " AND p.manufacturer_id = '".$manufacturer_id."'"; } /* filter by manufacturer id - end */ === BEFORE === $sort_data = array( 'pd.name', 'p.sort_order', 'special', 'rating', 'p.price', 'p.model' ); ===внимательно пересмотрите HOWTO А что если $this->model_catalog_product->getProductsByCategoryId(703, pd.name, ASC, (1 - 1) * , , 113) и SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '5' AND ss.language_id = '5' AND p2c.category_id = '703' AND p.manufacturer_id = '113' ORDER BY pd.name ASC LIMIT 0,12 При этом пришлось прописать жестко: $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * 12, 12, $curr_manufacturer); вместо $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $sort, $order, ($page - 1) * $this->config->get('config_catalog_limit'), $this->config->get('config_catalog_limit'), $curr_manufacturer); т.к. во втором случае вообще пусто на странице: SELECT *, pd.name AS name, p.image, m.name AS manufacturer, ss.name AS stock, (SELECT AVG(r.rating) FROM review r WHERE p.product_id = r.product_id GROUP BY r.product_id) AS rating FROM product p LEFT JOIN product_description pd ON (p.product_id = pd.product_id) LEFT JOIN manufacturer m ON (p.manufacturer_id = m.manufacturer_id) LEFT JOIN stock_status ss ON (p.stock_status_id = ss.stock_status_id) LEFT JOIN product_to_category p2c ON (p.product_id = p2c.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND pd.language_id = '5' AND ss.language_id = '5' AND p2c.category_id = '703' AND p.manufacturer_id = '113' ORDER BY pd.name ASC LIMIT 0,0 Подскажите, пожалуйста, в чем ошибка? Надіслати Поділитися на інших сайтах More sharing options...
sumolex Опубліковано: 30 березня 2011 Share Опубліковано: 30 березня 2011 Исправил, всем спасибо! :) Надіслати Поділитися на інших сайтах More sharing options...
Гість Опубліковано: 1 травня 2011 Share Опубліковано: 1 травня 2011 Вопрос. Возможно ли сделать 2 сортировки товара. тоесть у меня например в магазине есть повторяющая продукция но раного обьема и разные производители. Сейчас при сортировке например по имени получается каша из прозиводителей. идут в разброс. При сортировке по прозводителю идет каша по названию. тоесть 1 продукт может попастя в начале страница и тот же самый в конце списка по производителю. Пробовал разные способы и назначению продуктам порядка но все равно не помогает, вся продукция идет в разброс Надіслати Поділитися на інших сайтах More sharing options...
afwollis Опубліковано: 4 травня 2011 Share Опубліковано: 4 травня 2011 shoma, конечно можно. надо только определиться с данными, по которым должны сортироваться товары и указать соответствующие поля в сортировке в sql-запросе. Надіслати Поділитися на інших сайтах More sharing options... 3 weeks later... Artur Опубліковано: 20 травня 2011 Share Опубліковано: 20 травня 2011 Отличное дополнение!!! Но, пожалуйста подскажите, возможно ли сделать так, чтобы после выбора производителя осуществлялась сортировка по имени, цене, модели и т.д. только в товарах выбранного производителя, а не по всем товарам категории, как это происходит сейчас??? Вот меня тоже интересует этот вопрос, помогите, пожалуйста. Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 присоединяюсь к Lector и Artur Надіслати Поділитися на інших сайтах More sharing options... Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 решил. открываем catalog/controller/product/category.phpищем $this->data['sorts'] = array();перед этой строкой добавить if (isset($this->request->get['manufacturer'])) { $manu = '&manufacturer=' . $this->request->get['manufacturer']; } else {$manu = '';} находим $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC') ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC') ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC') ); заменяем на $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $manu) ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $manu) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $manu) ); вуаля, сортировка по имени, цене, модели и т.д. работает до или после выбора производителя Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Ritter Опубліковано: 5 жовтня 2011 Share Опубліковано: 5 жовтня 2011 Под 1.5 есть исправления? Надіслати Поділитися на інших сайтах More sharing options... 2 weeks later... indevor Опубліковано: 19 жовтня 2011 Share Опубліковано: 19 жовтня 2011 Присоединяюсь Ritter, по 1.5 есть рецепт? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... Borzoid Опубліковано: 9 грудня 2011 Share Опубліковано: 9 грудня 2011 Сделал вроде все по инструкции но реакция нулевая. Вообще все как и было и даже ошибок не выдает. Скорее все в catalog/model/catalog/product.php накосячил. Там мне не совсем понятно было куда вставлять функцию Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Artur Опубліковано: 20 травня 2011 Share Опубліковано: 20 травня 2011 Отличное дополнение!!! Но, пожалуйста подскажите, возможно ли сделать так, чтобы после выбора производителя осуществлялась сортировка по имени, цене, модели и т.д. только в товарах выбранного производителя, а не по всем товарам категории, как это происходит сейчас??? Вот меня тоже интересует этот вопрос, помогите, пожалуйста. Надіслати Поділитися на інших сайтах More sharing options...
Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 присоединяюсь к Lector и Artur Надіслати Поділитися на інших сайтах More sharing options...
Tsamada Опубліковано: 6 липня 2011 Share Опубліковано: 6 липня 2011 решил. открываем catalog/controller/product/category.phpищем $this->data['sorts'] = array();перед этой строкой добавить if (isset($this->request->get['manufacturer'])) { $manu = '&manufacturer=' . $this->request->get['manufacturer']; } else {$manu = '';} находим $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC') ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC') ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC') ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC') ); заменяем на $this->data['sorts'][] = array( 'text' => $this->language->get('text_default'), 'value' => 'p.sort_order-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_asc'), 'value' => 'pd.name-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_name_desc'), 'value' => 'pd.name-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=pd.name&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_asc'), 'value' => 'p.price-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_price_desc'), 'value' => 'p.price-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.price&order=DESC' . $manu) ); if ($this->config->get('config_review')) { $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_desc'), 'value' => 'rating-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=DESC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_rating_asc'), 'value' => 'rating-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=rating&order=ASC' . $manu) ); } $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_asc'), 'value' => 'p.model-ASC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=ASC' . $manu) ); $this->data['sorts'][] = array( 'text' => $this->language->get('text_model_desc'), 'value' => 'p.model-DESC', 'href' => $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $this->request->get['path'] . '&sort=p.model&order=DESC' . $manu) ); вуаля, сортировка по имени, цене, модели и т.д. работает до или после выбора производителя Надіслати Поділитися на інших сайтах More sharing options...
Ritter Опубліковано: 5 жовтня 2011 Share Опубліковано: 5 жовтня 2011 Под 1.5 есть исправления? Надіслати Поділитися на інших сайтах More sharing options...
indevor Опубліковано: 19 жовтня 2011 Share Опубліковано: 19 жовтня 2011 Присоединяюсь Ritter, по 1.5 есть рецепт? Надіслати Поділитися на інших сайтах More sharing options...
Borzoid Опубліковано: 9 грудня 2011 Share Опубліковано: 9 грудня 2011 Сделал вроде все по инструкции но реакция нулевая. Вообще все как и было и даже ошибок не выдает. Скорее все в catalog/model/catalog/product.php накосячил. Там мне не совсем понятно было куда вставлять функцию Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts