juancarlovich Опубликовано: декабря 9, 2015 Жалоба Поделиться Опубликовано: декабря 9, 2015 Уважаемые, помогите разобраться Движок PRO Версия 2.1.0.1.8. Задача - в модуле Новинки выводить последние товары не по дате создания, а по product_id. Изменил в файле catalog/controller/module/latest.php на: $filter_data = array( 'sort' => 'p.product_id', 'order' => 'DESC', 'start' => 0, 'limit' => $setting['limit'] ); вывод товаров изменился, но каким-то хаотичным способом... Теперь выводятся id: 48958, 48956, 48957, 51792 и тд. - в каком-то разнобое идут, вперемешку последние и совсем не последние. Такая же ситуация и с модулем product_tab.php. На прошлых версиях OpenCarta все работало замечательно, на 2 версию только вчера перешел... Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Это популярное сообщение. savage4pro Опубликовано: декабря 9, 2015 Это популярное сообщение. Жалоба Поделиться Опубликовано: декабря 9, 2015 добавьте еще один ключ p.product_id в массив sort_data метода getProducts модели ModelCatalogProduct juancarlovich 1 Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
juancarlovich Опубликовано: декабря 10, 2015 Автор Жалоба Поделиться Опубликовано: декабря 10, 2015 12 часа назад, savage4pro сказал: добавьте еще один ключ p.product_id в массив sort_data метода getProducts модели ModelCatalogProduct огромное спасибо! Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
juancarlovich Опубликовано: марта 23, 2017 Автор Жалоба Поделиться Опубликовано: марта 23, 2017 Прошу еще раз помощи, теперь под версию PRO 2.3.0.2.2, такая же проблема как и в первом посте Что сделано: 1. catalog/model/catalog/product.php - добавил ключ p.roduct_id Скрытый текст public function getProducts($data = array()) { ... $sort_data = array( 'p.product_id', 'pd.name', 'p.model', 'p.quantity', 'p.price', 'rating', 'p.sort_order', 'p.date_added' ); и заменил сортировку в запросе getLatestProducts Скрытый текст public function getLatestProducts($limit) { $product_data = $this->cache->get('product.latest.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $this->config->get('config_customer_group_id') . '.' . (int)$limit); if (!$product_data) { $query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.product_id DESC LIMIT " . (int)$limit); 2. catalog/controller/extension/module/latest.php - заменил на сортировку по p.product_id Скрытый текст $filter_data = array( 'sort' => 'p.product_id', 'order' => 'DESC', 'start' => 0, 'limit' => $setting['limit'] ); В итоге фигня какая-то, опять выводится в рандомном порядке... UPD: в общем-то оказалось все легко, но для не очевидно нужно модификаторы обновлять после изменения кода. Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
gyurza2000 Опубликовано: декабря 10, 2019 Жалоба Поделиться Опубликовано: декабря 10, 2019 В 23.03.2017 at 20:56, juancarlovich сказал: Прошу еще раз помощи, теперь под версию PRO 2.3.0.2.2, такая же проблема как и в первом посте Что сделано: 1. catalog/model/catalog/product.php - добавил ключ p.roduct_id Показать содержимое public function getProducts($data = array()) { ... $sort_data = array( 'p.product_id', 'pd.name', 'p.model', 'p.quantity', 'p.price', 'rating', 'p.sort_order', 'p.date_added' ); и заменил сортировку в запросе getLatestProducts Показать содержимое public function getLatestProducts($limit) { $product_data = $this->cache->get('product.latest.' . (int)$this->config->get('config_language_id') . '.' . (int)$this->config->get('config_store_id') . '.' . $this->config->get('config_customer_group_id') . '.' . (int)$limit); if (!$product_data) { $query = $this->db->query("SELECT p.product_id FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "' ORDER BY p.product_id DESC LIMIT " . (int)$limit); 2. catalog/controller/extension/module/latest.php - заменил на сортировку по p.product_id Скрыть содержимое $filter_data = array( 'sort' => 'p.product_id', 'order' => 'DESC', 'start' => 0, 'limit' => $setting['limit'] ); В итоге фигня какая-то, опять выводится в рандомном порядке... UPD: в общем-то оказалось все легко, но для не очевидно нужно модификаторы обновлять после изменения кода. Делал также - не работает...может ещё какие файлы на эту сортировку product/latest ? Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
juancarlovich Опубликовано: декабря 10, 2019 Автор Жалоба Поделиться Опубликовано: декабря 10, 2019 модификаторы почистили? Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
gyurza2000 Опубликовано: декабря 10, 2019 Жалоба Поделиться Опубликовано: декабря 10, 2019 Да, после всех манипуляций и модификаторы чищу и кеш шаблона чищу наверное, мы о разных вещах говорим. Меня интересует вывод товаров на этой странице: мой_сайт/index.php?route=product/latest Цитата Ссылка на комментарий Поделиться на других сайтах Больше вариантов поделиться...
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сейчас и зарегистрироваться позже. Если у вас есть учётная запись, войдите, чтобы публиковать под своей учётной записью.