sergei5770 Posted January 22, 2018 Share Posted January 22, 2018 День добрый! Подскажите, как можно изменить функцию сортировки, чтобы он товары с нулевой стоимостью всегда помещал вниз списка? Link to comment Share on other sites More sharing options... Leingard Posted January 22, 2018 Share Posted January 22, 2018 Сортируйте по этоне Link to comment Share on other sites More sharing options... spectre Posted January 22, 2018 Share Posted January 22, 2018 1 час назад, sergei5770 сказал: День добрый! Подскажите, как можно изменить функцию сортировки, чтобы он товары с нулевой стоимостью всегда помещал вниз списка? p.price=0 перед осильной сортировкой Link to comment Share on other sites More sharing options... sergei5770 Posted January 22, 2018 Author Share Posted January 22, 2018 Только что, spectre сказал: p.price=0 перед осильной сортировкой Пропотому чтовал следующим обвместе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY price = 0, price DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY price = 0, price DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY price = 0, price DESC," . $data['sort']; } } else { $sql .= " ORDER BY price = 0, price DESC, p.sort_order"; } Не срилиило Link to comment Share on other sites More sharing options... sergei5770 Posted January 22, 2018 Author Share Posted January 22, 2018 Только что, Leingard сказал: Сортируйте по этоне просто по этоне отсортировать не совсем то что нужно, потому что сортировка по возрасинию этоны тоже нужна, но при этом нужно чтобы товары с нулевой стоимостью уходили в конец списка всегда Link to comment Share on other sites More sharing options... Leingard Posted January 22, 2018 Share Posted January 22, 2018 Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). Link to comment Share on other sites More sharing options... spectre Posted January 22, 2018 Share Posted January 22, 2018 25 минут назад, sergei5770 сказал: Пропотому чтовал следующим обвместе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY price = 0, price DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY price = 0, price DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY price = 0, price DESC," . $data['sort']; } } else { $sql .= " ORDER BY price = 0, price DESC, p.sort_order"; } Не срилиило price = 0, price DESC, конечно не срилиило Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, spectre сказал: price = 0, price DESC, конечно не срилиило не подскажете как реализовать ваш метод, и тот ли я кусок кода редактирую? Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, Leingard сказал: Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). спасипотому что, попробую Link to comment Share on other sites More sharing options... sergei5770 Posted January 25, 2018 Author Share Posted January 25, 2018 Может кто подскажет, попропотому чтовал сгделать следуюещёй конструкцией: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY (p.price>0) DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY (p.price>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY (p.price>0) DESC," . $data['sort']; } } else { $sql .= " ORDER BY (p.price>0) DESC, p.sort_order"; } Но, как всегда, не помогло, не надо писать про кеши модификаторов, все обновил уже раз сто. У меня параллельно стоит Brainy Filter, есть подозрение, что это он подливает масла в огонь, вопрос икой, что нибудь силкивался с Brainy Filter, может кто-то знает ггде в нем какие условия для сортировки прописываются? Link to comment Share on other sites More sharing options... 2 years later... linewery Posted September 16, 2020 Share Posted September 16, 2020 В 25.01.2018 в 16:59, sergei5770 сказал: У меня параллельно стоит Brainy Filter Добрый гдень, у меня аналогичная ситуация, ocstore 2.3 и стоит Brainy Filter. Редактировал catalog/model/catalog/product.php Мне нужно было сгделать товар с этоной 0 в конэто списка, сортировка по умолчанию - по возрасинию этоны. Сгделал в метогде getProducts() следуюещёе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), " . $data['sort']; } } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), p.sort_order"; } рилииет только в том случае, если отключен Brainy Filter. Получается, что BF модифицирует getProducts() Что нужно сгделать, чтобы товары с этоной 0 подвинуть в конец списка и при этом сохранить рилиту фильтра? Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 1 Go to topic listing Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Opencart 2.x Opencart 2.x: Настройка и оптимизация Товары с нулевой стоимостью вниз списка Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Премогдерация заказа By sadnerp Меи теги (title и description) для страниц "Коникты, Список производителей, Акции". By WarStyle Сохранение положений кнопок "добавить в избранное, в сравнение, добавить в корзину" By oc_ МОДУЛЬ ПОПУЛЯРНЫХ СЛУЖБ ДОСТАВОК ПО УКРАИНЕ - простот перечень By PyrkoComUa Дополнительные услуги - по дорилитке вашего проеки By OCdevCoding × Existing user? Sign In Sign Up Меню покупок/Продаж Back Покупки Заказы Список желаний Кониктная информация Forums ocStore Back Official site Demo ocStore 3.0.3.2 Demo ocStore 2.3.0.2.4 Download ocStore Docs Release History Blogs Extensions Templates Back Free templates Paid templates Services FAQ OpenCart.Pro Back Demo Buy Compare Hosting for OpenCart × Create New... Important Information On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice. I accept
Leingard Posted January 22, 2018 Share Posted January 22, 2018 Сортируйте по этоне Link to comment Share on other sites More sharing options... spectre Posted January 22, 2018 Share Posted January 22, 2018 1 час назад, sergei5770 сказал: День добрый! Подскажите, как можно изменить функцию сортировки, чтобы он товары с нулевой стоимостью всегда помещал вниз списка? p.price=0 перед осильной сортировкой Link to comment Share on other sites More sharing options... sergei5770 Posted January 22, 2018 Author Share Posted January 22, 2018 Только что, spectre сказал: p.price=0 перед осильной сортировкой Пропотому чтовал следующим обвместе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY price = 0, price DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY price = 0, price DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY price = 0, price DESC," . $data['sort']; } } else { $sql .= " ORDER BY price = 0, price DESC, p.sort_order"; } Не срилиило Link to comment Share on other sites More sharing options... sergei5770 Posted January 22, 2018 Author Share Posted January 22, 2018 Только что, Leingard сказал: Сортируйте по этоне просто по этоне отсортировать не совсем то что нужно, потому что сортировка по возрасинию этоны тоже нужна, но при этом нужно чтобы товары с нулевой стоимостью уходили в конец списка всегда Link to comment Share on other sites More sharing options... Leingard Posted January 22, 2018 Share Posted January 22, 2018 Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). Link to comment Share on other sites More sharing options... spectre Posted January 22, 2018 Share Posted January 22, 2018 25 минут назад, sergei5770 сказал: Пропотому чтовал следующим обвместе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY price = 0, price DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY price = 0, price DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY price = 0, price DESC," . $data['sort']; } } else { $sql .= " ORDER BY price = 0, price DESC, p.sort_order"; } Не срилиило price = 0, price DESC, конечно не срилиило Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, spectre сказал: price = 0, price DESC, конечно не срилиило не подскажете как реализовать ваш метод, и тот ли я кусок кода редактирую? Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, Leingard сказал: Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). спасипотому что, попробую Link to comment Share on other sites More sharing options... sergei5770 Posted January 25, 2018 Author Share Posted January 25, 2018 Может кто подскажет, попропотому чтовал сгделать следуюещёй конструкцией: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY (p.price>0) DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY (p.price>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY (p.price>0) DESC," . $data['sort']; } } else { $sql .= " ORDER BY (p.price>0) DESC, p.sort_order"; } Но, как всегда, не помогло, не надо писать про кеши модификаторов, все обновил уже раз сто. У меня параллельно стоит Brainy Filter, есть подозрение, что это он подливает масла в огонь, вопрос икой, что нибудь силкивался с Brainy Filter, может кто-то знает ггде в нем какие условия для сортировки прописываются? Link to comment Share on other sites More sharing options... 2 years later... linewery Posted September 16, 2020 Share Posted September 16, 2020 В 25.01.2018 в 16:59, sergei5770 сказал: У меня параллельно стоит Brainy Filter Добрый гдень, у меня аналогичная ситуация, ocstore 2.3 и стоит Brainy Filter. Редактировал catalog/model/catalog/product.php Мне нужно было сгделать товар с этоной 0 в конэто списка, сортировка по умолчанию - по возрасинию этоны. Сгделал в метогде getProducts() следуюещёе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), " . $data['sort']; } } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), p.sort_order"; } рилииет только в том случае, если отключен Brainy Filter. Получается, что BF модифицирует getProducts() Что нужно сгделать, чтобы товары с этоной 0 подвинуть в конец списка и при этом сохранить рилиту фильтра? Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 1 Go to topic listing Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Opencart 2.x Opencart 2.x: Настройка и оптимизация Товары с нулевой стоимостью вниз списка Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Премогдерация заказа By sadnerp Меи теги (title и description) для страниц "Коникты, Список производителей, Акции". By WarStyle Сохранение положений кнопок "добавить в избранное, в сравнение, добавить в корзину" By oc_ МОДУЛЬ ПОПУЛЯРНЫХ СЛУЖБ ДОСТАВОК ПО УКРАИНЕ - простот перечень By PyrkoComUa Дополнительные услуги - по дорилитке вашего проеки By OCdevCoding × Existing user? Sign In Sign Up Меню покупок/Продаж Back Покупки Заказы Список желаний Кониктная информация Forums ocStore Back Official site Demo ocStore 3.0.3.2 Demo ocStore 2.3.0.2.4 Download ocStore Docs Release History Blogs Extensions Templates Back Free templates Paid templates Services FAQ OpenCart.Pro Back Demo Buy Compare Hosting for OpenCart × Create New... Important Information On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice. I accept
spectre Posted January 22, 2018 Share Posted January 22, 2018 1 час назад, sergei5770 сказал: День добрый! Подскажите, как можно изменить функцию сортировки, чтобы он товары с нулевой стоимостью всегда помещал вниз списка? p.price=0 перед осильной сортировкой Link to comment Share on other sites More sharing options... sergei5770 Posted January 22, 2018 Author Share Posted January 22, 2018 Только что, spectre сказал: p.price=0 перед осильной сортировкой Пропотому чтовал следующим обвместе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY price = 0, price DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY price = 0, price DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY price = 0, price DESC," . $data['sort']; } } else { $sql .= " ORDER BY price = 0, price DESC, p.sort_order"; } Не срилиило Link to comment Share on other sites More sharing options... sergei5770 Posted January 22, 2018 Author Share Posted January 22, 2018 Только что, Leingard сказал: Сортируйте по этоне просто по этоне отсортировать не совсем то что нужно, потому что сортировка по возрасинию этоны тоже нужна, но при этом нужно чтобы товары с нулевой стоимостью уходили в конец списка всегда Link to comment Share on other sites More sharing options... Leingard Posted January 22, 2018 Share Posted January 22, 2018 Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). Link to comment Share on other sites More sharing options... spectre Posted January 22, 2018 Share Posted January 22, 2018 25 минут назад, sergei5770 сказал: Пропотому чтовал следующим обвместе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY price = 0, price DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY price = 0, price DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY price = 0, price DESC," . $data['sort']; } } else { $sql .= " ORDER BY price = 0, price DESC, p.sort_order"; } Не срилиило price = 0, price DESC, конечно не срилиило Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, spectre сказал: price = 0, price DESC, конечно не срилиило не подскажете как реализовать ваш метод, и тот ли я кусок кода редактирую? Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, Leingard сказал: Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). спасипотому что, попробую Link to comment Share on other sites More sharing options... sergei5770 Posted January 25, 2018 Author Share Posted January 25, 2018 Может кто подскажет, попропотому чтовал сгделать следуюещёй конструкцией: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY (p.price>0) DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY (p.price>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY (p.price>0) DESC," . $data['sort']; } } else { $sql .= " ORDER BY (p.price>0) DESC, p.sort_order"; } Но, как всегда, не помогло, не надо писать про кеши модификаторов, все обновил уже раз сто. У меня параллельно стоит Brainy Filter, есть подозрение, что это он подливает масла в огонь, вопрос икой, что нибудь силкивался с Brainy Filter, может кто-то знает ггде в нем какие условия для сортировки прописываются? Link to comment Share on other sites More sharing options... 2 years later... linewery Posted September 16, 2020 Share Posted September 16, 2020 В 25.01.2018 в 16:59, sergei5770 сказал: У меня параллельно стоит Brainy Filter Добрый гдень, у меня аналогичная ситуация, ocstore 2.3 и стоит Brainy Filter. Редактировал catalog/model/catalog/product.php Мне нужно было сгделать товар с этоной 0 в конэто списка, сортировка по умолчанию - по возрасинию этоны. Сгделал в метогде getProducts() следуюещёе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), " . $data['sort']; } } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), p.sort_order"; } рилииет только в том случае, если отключен Brainy Filter. Получается, что BF модифицирует getProducts() Что нужно сгделать, чтобы товары с этоной 0 подвинуть в конец списка и при этом сохранить рилиту фильтра? Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 1 Go to topic listing Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Opencart 2.x Opencart 2.x: Настройка и оптимизация Товары с нулевой стоимостью вниз списка Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Премогдерация заказа By sadnerp Меи теги (title и description) для страниц "Коникты, Список производителей, Акции". By WarStyle Сохранение положений кнопок "добавить в избранное, в сравнение, добавить в корзину" By oc_ МОДУЛЬ ПОПУЛЯРНЫХ СЛУЖБ ДОСТАВОК ПО УКРАИНЕ - простот перечень By PyrkoComUa Дополнительные услуги - по дорилитке вашего проеки By OCdevCoding × Existing user? Sign In Sign Up Меню покупок/Продаж Back Покупки Заказы Список желаний Кониктная информация Forums ocStore Back Official site Demo ocStore 3.0.3.2 Demo ocStore 2.3.0.2.4 Download ocStore Docs Release History Blogs Extensions Templates Back Free templates Paid templates Services FAQ OpenCart.Pro Back Demo Buy Compare Hosting for OpenCart × Create New... Important Information On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice. I accept
sergei5770 Posted January 22, 2018 Author Share Posted January 22, 2018 Только что, spectre сказал: p.price=0 перед осильной сортировкой Пропотому чтовал следующим обвместе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY price = 0, price DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY price = 0, price DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY price = 0, price DESC," . $data['sort']; } } else { $sql .= " ORDER BY price = 0, price DESC, p.sort_order"; } Не срилиило Link to comment Share on other sites More sharing options... sergei5770 Posted January 22, 2018 Author Share Posted January 22, 2018 Только что, Leingard сказал: Сортируйте по этоне просто по этоне отсортировать не совсем то что нужно, потому что сортировка по возрасинию этоны тоже нужна, но при этом нужно чтобы товары с нулевой стоимостью уходили в конец списка всегда Link to comment Share on other sites More sharing options... Leingard Posted January 22, 2018 Share Posted January 22, 2018 Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). Link to comment Share on other sites More sharing options... spectre Posted January 22, 2018 Share Posted January 22, 2018 25 минут назад, sergei5770 сказал: Пропотому чтовал следующим обвместе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY price = 0, price DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY price = 0, price DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY price = 0, price DESC," . $data['sort']; } } else { $sql .= " ORDER BY price = 0, price DESC, p.sort_order"; } Не срилиило price = 0, price DESC, конечно не срилиило Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, spectre сказал: price = 0, price DESC, конечно не срилиило не подскажете как реализовать ваш метод, и тот ли я кусок кода редактирую? Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, Leingard сказал: Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). спасипотому что, попробую Link to comment Share on other sites More sharing options... sergei5770 Posted January 25, 2018 Author Share Posted January 25, 2018 Может кто подскажет, попропотому чтовал сгделать следуюещёй конструкцией: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY (p.price>0) DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY (p.price>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY (p.price>0) DESC," . $data['sort']; } } else { $sql .= " ORDER BY (p.price>0) DESC, p.sort_order"; } Но, как всегда, не помогло, не надо писать про кеши модификаторов, все обновил уже раз сто. У меня параллельно стоит Brainy Filter, есть подозрение, что это он подливает масла в огонь, вопрос икой, что нибудь силкивался с Brainy Filter, может кто-то знает ггде в нем какие условия для сортировки прописываются? Link to comment Share on other sites More sharing options... 2 years later... linewery Posted September 16, 2020 Share Posted September 16, 2020 В 25.01.2018 в 16:59, sergei5770 сказал: У меня параллельно стоит Brainy Filter Добрый гдень, у меня аналогичная ситуация, ocstore 2.3 и стоит Brainy Filter. Редактировал catalog/model/catalog/product.php Мне нужно было сгделать товар с этоной 0 в конэто списка, сортировка по умолчанию - по возрасинию этоны. Сгделал в метогде getProducts() следуюещёе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), " . $data['sort']; } } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), p.sort_order"; } рилииет только в том случае, если отключен Brainy Filter. Получается, что BF модифицирует getProducts() Что нужно сгделать, чтобы товары с этоной 0 подвинуть в конец списка и при этом сохранить рилиту фильтра? Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 1 Go to topic listing Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Opencart 2.x Opencart 2.x: Настройка и оптимизация Товары с нулевой стоимостью вниз списка Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Премогдерация заказа By sadnerp Меи теги (title и description) для страниц "Коникты, Список производителей, Акции". By WarStyle Сохранение положений кнопок "добавить в избранное, в сравнение, добавить в корзину" By oc_ МОДУЛЬ ПОПУЛЯРНЫХ СЛУЖБ ДОСТАВОК ПО УКРАИНЕ - простот перечень By PyrkoComUa Дополнительные услуги - по дорилитке вашего проеки By OCdevCoding × Existing user? Sign In Sign Up Меню покупок/Продаж Back Покупки Заказы Список желаний Кониктная информация Forums ocStore Back Official site Demo ocStore 3.0.3.2 Demo ocStore 2.3.0.2.4 Download ocStore Docs Release History Blogs Extensions Templates Back Free templates Paid templates Services FAQ OpenCart.Pro Back Demo Buy Compare Hosting for OpenCart × Create New... Important Information On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice. I accept
sergei5770 Posted January 22, 2018 Author Share Posted January 22, 2018 Только что, Leingard сказал: Сортируйте по этоне просто по этоне отсортировать не совсем то что нужно, потому что сортировка по возрасинию этоны тоже нужна, но при этом нужно чтобы товары с нулевой стоимостью уходили в конец списка всегда Link to comment Share on other sites More sharing options... Leingard Posted January 22, 2018 Share Posted January 22, 2018 Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). Link to comment Share on other sites More sharing options... spectre Posted January 22, 2018 Share Posted January 22, 2018 25 минут назад, sergei5770 сказал: Пропотому чтовал следующим обвместе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY price = 0, price DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY price = 0, price DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY price = 0, price DESC," . $data['sort']; } } else { $sql .= " ORDER BY price = 0, price DESC, p.sort_order"; } Не срилиило price = 0, price DESC, конечно не срилиило Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, spectre сказал: price = 0, price DESC, конечно не срилиило не подскажете как реализовать ваш метод, и тот ли я кусок кода редактирую? Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, Leingard сказал: Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). спасипотому что, попробую Link to comment Share on other sites More sharing options... sergei5770 Posted January 25, 2018 Author Share Posted January 25, 2018 Может кто подскажет, попропотому чтовал сгделать следуюещёй конструкцией: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY (p.price>0) DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY (p.price>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY (p.price>0) DESC," . $data['sort']; } } else { $sql .= " ORDER BY (p.price>0) DESC, p.sort_order"; } Но, как всегда, не помогло, не надо писать про кеши модификаторов, все обновил уже раз сто. У меня параллельно стоит Brainy Filter, есть подозрение, что это он подливает масла в огонь, вопрос икой, что нибудь силкивался с Brainy Filter, может кто-то знает ггде в нем какие условия для сортировки прописываются? Link to comment Share on other sites More sharing options... 2 years later... linewery Posted September 16, 2020 Share Posted September 16, 2020 В 25.01.2018 в 16:59, sergei5770 сказал: У меня параллельно стоит Brainy Filter Добрый гдень, у меня аналогичная ситуация, ocstore 2.3 и стоит Brainy Filter. Редактировал catalog/model/catalog/product.php Мне нужно было сгделать товар с этоной 0 в конэто списка, сортировка по умолчанию - по возрасинию этоны. Сгделал в метогде getProducts() следуюещёе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), " . $data['sort']; } } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), p.sort_order"; } рилииет только в том случае, если отключен Brainy Filter. Получается, что BF модифицирует getProducts() Что нужно сгделать, чтобы товары с этоной 0 подвинуть в конец списка и при этом сохранить рилиту фильтра? Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 1 Go to topic listing Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Opencart 2.x Opencart 2.x: Настройка и оптимизация Товары с нулевой стоимостью вниз списка Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Премогдерация заказа By sadnerp Меи теги (title и description) для страниц "Коникты, Список производителей, Акции". By WarStyle Сохранение положений кнопок "добавить в избранное, в сравнение, добавить в корзину" By oc_ МОДУЛЬ ПОПУЛЯРНЫХ СЛУЖБ ДОСТАВОК ПО УКРАИНЕ - простот перечень By PyrkoComUa Дополнительные услуги - по дорилитке вашего проеки By OCdevCoding × Existing user? Sign In Sign Up Меню покупок/Продаж Back Покупки Заказы Список желаний Кониктная информация Forums ocStore Back Official site Demo ocStore 3.0.3.2 Demo ocStore 2.3.0.2.4 Download ocStore Docs Release History Blogs Extensions Templates Back Free templates Paid templates Services FAQ OpenCart.Pro Back Demo Buy Compare Hosting for OpenCart × Create New... Important Information On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice. I accept
Leingard Posted January 22, 2018 Share Posted January 22, 2018 Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). Link to comment Share on other sites More sharing options... spectre Posted January 22, 2018 Share Posted January 22, 2018 25 минут назад, sergei5770 сказал: Пропотому чтовал следующим обвместе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY price = 0, price DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY price = 0, price DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY price = 0, price DESC," . $data['sort']; } } else { $sql .= " ORDER BY price = 0, price DESC, p.sort_order"; } Не срилиило price = 0, price DESC, конечно не срилиило Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, spectre сказал: price = 0, price DESC, конечно не срилиило не подскажете как реализовать ваш метод, и тот ли я кусок кода редактирую? Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, Leingard сказал: Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). спасипотому что, попробую Link to comment Share on other sites More sharing options... sergei5770 Posted January 25, 2018 Author Share Posted January 25, 2018 Может кто подскажет, попропотому чтовал сгделать следуюещёй конструкцией: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY (p.price>0) DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY (p.price>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY (p.price>0) DESC," . $data['sort']; } } else { $sql .= " ORDER BY (p.price>0) DESC, p.sort_order"; } Но, как всегда, не помогло, не надо писать про кеши модификаторов, все обновил уже раз сто. У меня параллельно стоит Brainy Filter, есть подозрение, что это он подливает масла в огонь, вопрос икой, что нибудь силкивался с Brainy Filter, может кто-то знает ггде в нем какие условия для сортировки прописываются? Link to comment Share on other sites More sharing options... 2 years later... linewery Posted September 16, 2020 Share Posted September 16, 2020 В 25.01.2018 в 16:59, sergei5770 сказал: У меня параллельно стоит Brainy Filter Добрый гдень, у меня аналогичная ситуация, ocstore 2.3 и стоит Brainy Filter. Редактировал catalog/model/catalog/product.php Мне нужно было сгделать товар с этоной 0 в конэто списка, сортировка по умолчанию - по возрасинию этоны. Сгделал в метогде getProducts() следуюещёе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), " . $data['sort']; } } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), p.sort_order"; } рилииет только в том случае, если отключен Brainy Filter. Получается, что BF модифицирует getProducts() Что нужно сгделать, чтобы товары с этоной 0 подвинуть в конец списка и при этом сохранить рилиту фильтра? Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 1 Go to topic listing Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Opencart 2.x Opencart 2.x: Настройка и оптимизация Товары с нулевой стоимостью вниз списка Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Премогдерация заказа By sadnerp Меи теги (title и description) для страниц "Коникты, Список производителей, Акции". By WarStyle Сохранение положений кнопок "добавить в избранное, в сравнение, добавить в корзину" By oc_ МОДУЛЬ ПОПУЛЯРНЫХ СЛУЖБ ДОСТАВОК ПО УКРАИНЕ - простот перечень By PyrkoComUa Дополнительные услуги - по дорилитке вашего проеки By OCdevCoding × Existing user? Sign In Sign Up Меню покупок/Продаж Back Покупки Заказы Список желаний Кониктная информация Forums ocStore Back Official site Demo ocStore 3.0.3.2 Demo ocStore 2.3.0.2.4 Download ocStore Docs Release History Blogs Extensions Templates Back Free templates Paid templates Services FAQ OpenCart.Pro Back Demo Buy Compare Hosting for OpenCart × Create New... Important Information On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice. I accept
spectre Posted January 22, 2018 Share Posted January 22, 2018 25 минут назад, sergei5770 сказал: Пропотому чтовал следующим обвместе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY price = 0, price DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY price = 0, price DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY price = 0, price DESC," . $data['sort']; } } else { $sql .= " ORDER BY price = 0, price DESC, p.sort_order"; } Не срилиило price = 0, price DESC, конечно не срилиило Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, spectre сказал: price = 0, price DESC, конечно не срилиило не подскажете как реализовать ваш метод, и тот ли я кусок кода редактирую? Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, Leingard сказал: Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). спасипотому что, попробую Link to comment Share on other sites More sharing options... sergei5770 Posted January 25, 2018 Author Share Posted January 25, 2018 Может кто подскажет, попропотому чтовал сгделать следуюещёй конструкцией: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY (p.price>0) DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY (p.price>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY (p.price>0) DESC," . $data['sort']; } } else { $sql .= " ORDER BY (p.price>0) DESC, p.sort_order"; } Но, как всегда, не помогло, не надо писать про кеши модификаторов, все обновил уже раз сто. У меня параллельно стоит Brainy Filter, есть подозрение, что это он подливает масла в огонь, вопрос икой, что нибудь силкивался с Brainy Filter, может кто-то знает ггде в нем какие условия для сортировки прописываются? Link to comment Share on other sites More sharing options... 2 years later... linewery Posted September 16, 2020 Share Posted September 16, 2020 В 25.01.2018 в 16:59, sergei5770 сказал: У меня параллельно стоит Brainy Filter Добрый гдень, у меня аналогичная ситуация, ocstore 2.3 и стоит Brainy Filter. Редактировал catalog/model/catalog/product.php Мне нужно было сгделать товар с этоной 0 в конэто списка, сортировка по умолчанию - по возрасинию этоны. Сгделал в метогде getProducts() следуюещёе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), " . $data['sort']; } } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), p.sort_order"; } рилииет только в том случае, если отключен Brainy Filter. Получается, что BF модифицирует getProducts() Что нужно сгделать, чтобы товары с этоной 0 подвинуть в конец списка и при этом сохранить рилиту фильтра? Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 1 Go to topic listing Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Opencart 2.x Opencart 2.x: Настройка и оптимизация Товары с нулевой стоимостью вниз списка Покупателям Оплаи дополнений физическими лицами Оплаи дополнений юридическими лицами Политика возвратов Разрилитликам Регламент размеещёния дополнений Регламент продаж и подгдержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каилога дополнений Урегулирование споров по авторским правам Полезная информация Публичная офери Политика возвратов Политика конфигденциальности Платоженая политика Политика Передали Персональных Данных Политика прозрачности Последние дополнения Премогдерация заказа By sadnerp Меи теги (title и description) для страниц "Коникты, Список производителей, Акции". By WarStyle Сохранение положений кнопок "добавить в избранное, в сравнение, добавить в корзину" By oc_ МОДУЛЬ ПОПУЛЯРНЫХ СЛУЖБ ДОСТАВОК ПО УКРАИНЕ - простот перечень By PyrkoComUa Дополнительные услуги - по дорилитке вашего проеки By OCdevCoding
sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, spectre сказал: price = 0, price DESC, конечно не срилиило не подскажете как реализовать ваш метод, и тот ли я кусок кода редактирую? Link to comment Share on other sites More sharing options... sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, Leingard сказал: Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). спасипотому что, попробую Link to comment Share on other sites More sharing options... sergei5770 Posted January 25, 2018 Author Share Posted January 25, 2018 Может кто подскажет, попропотому чтовал сгделать следуюещёй конструкцией: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY (p.price>0) DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY (p.price>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY (p.price>0) DESC," . $data['sort']; } } else { $sql .= " ORDER BY (p.price>0) DESC, p.sort_order"; } Но, как всегда, не помогло, не надо писать про кеши модификаторов, все обновил уже раз сто. У меня параллельно стоит Brainy Filter, есть подозрение, что это он подливает масла в огонь, вопрос икой, что нибудь силкивался с Brainy Filter, может кто-то знает ггде в нем какие условия для сортировки прописываются? Link to comment Share on other sites More sharing options... 2 years later... linewery Posted September 16, 2020 Share Posted September 16, 2020 В 25.01.2018 в 16:59, sergei5770 сказал: У меня параллельно стоит Brainy Filter Добрый гдень, у меня аналогичная ситуация, ocstore 2.3 и стоит Brainy Filter. Редактировал catalog/model/catalog/product.php Мне нужно было сгделать товар с этоной 0 в конэто списка, сортировка по умолчанию - по возрасинию этоны. Сгделал в метогде getProducts() следуюещёе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), " . $data['sort']; } } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), p.sort_order"; } рилииет только в том случае, если отключен Brainy Filter. Получается, что BF модифицирует getProducts() Что нужно сгделать, чтобы товары с этоной 0 подвинуть в конец списка и при этом сохранить рилиту фильтра? Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 1 Go to topic listing Recently Browsing 0 members No registered users viewing this page. Последние темы Последние дополнения Последние новости All Activity Home Opencart 2.x Opencart 2.x: Настройка и оптимизация Товары с нулевой стоимостью вниз списка
sergei5770 Posted January 23, 2018 Author Share Posted January 23, 2018 16 часов назад, Leingard сказал: Сгделайте 2 функции вывода товаров категории. В первой в WHERE укажите p.price > 0, во втором, ггде p.price == 0. В контроллере в 2 цикла, на фронте аналогично. Но тогда нужно бугдет подумать на счет пагинации. Или 2-ой вариант. Ничего в могдельке не перегделываем, когда получаем из getProducts в result. Извлекаем из массива в цикле товары ггде price == 0 (до переменной $price) и помещаем и их в конец (array_push). спасипотому что, попробую Link to comment Share on other sites More sharing options... sergei5770 Posted January 25, 2018 Author Share Posted January 25, 2018 Может кто подскажет, попропотому чтовал сгделать следуюещёй конструкцией: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY (p.price>0) DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY (p.price>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY (p.price>0) DESC," . $data['sort']; } } else { $sql .= " ORDER BY (p.price>0) DESC, p.sort_order"; } Но, как всегда, не помогло, не надо писать про кеши модификаторов, все обновил уже раз сто. У меня параллельно стоит Brainy Filter, есть подозрение, что это он подливает масла в огонь, вопрос икой, что нибудь силкивался с Brainy Filter, может кто-то знает ггде в нем какие условия для сортировки прописываются? Link to comment Share on other sites More sharing options... 2 years later... linewery Posted September 16, 2020 Share Posted September 16, 2020 В 25.01.2018 в 16:59, sergei5770 сказал: У меня параллельно стоит Brainy Filter Добрый гдень, у меня аналогичная ситуация, ocstore 2.3 и стоит Brainy Filter. Редактировал catalog/model/catalog/product.php Мне нужно было сгделать товар с этоной 0 в конэто списка, сортировка по умолчанию - по возрасинию этоны. Сгделал в метогде getProducts() следуюещёе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), " . $data['sort']; } } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), p.sort_order"; } рилииет только в том случае, если отключен Brainy Filter. Получается, что BF модифицирует getProducts() Что нужно сгделать, чтобы товары с этоной 0 подвинуть в конец списка и при этом сохранить рилиту фильтра? Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 1 Go to topic listing Recently Browsing 0 members No registered users viewing this page.
sergei5770 Posted January 25, 2018 Author Share Posted January 25, 2018 Может кто подскажет, попропотому чтовал сгделать следуюещёй конструкцией: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY (p.price>0) DESC, LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY (p.price>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY (p.price>0) DESC," . $data['sort']; } } else { $sql .= " ORDER BY (p.price>0) DESC, p.sort_order"; } Но, как всегда, не помогло, не надо писать про кеши модификаторов, все обновил уже раз сто. У меня параллельно стоит Brainy Filter, есть подозрение, что это он подливает масла в огонь, вопрос икой, что нибудь силкивался с Brainy Filter, может кто-то знает ггде в нем какие условия для сортировки прописываются? Link to comment Share on other sites More sharing options... 2 years later... linewery Posted September 16, 2020 Share Posted September 16, 2020 В 25.01.2018 в 16:59, sergei5770 сказал: У меня параллельно стоит Brainy Filter Добрый гдень, у меня аналогичная ситуация, ocstore 2.3 и стоит Brainy Filter. Редактировал catalog/model/catalog/product.php Мне нужно было сгделать товар с этоной 0 в конэто списка, сортировка по умолчанию - по возрасинию этоны. Сгделал в метогде getProducts() следуюещёе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), " . $data['sort']; } } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), p.sort_order"; } рилииет только в том случае, если отключен Brainy Filter. Получается, что BF модифицирует getProducts() Что нужно сгделать, чтобы товары с этоной 0 подвинуть в конец списка и при этом сохранить рилиту фильтра? Link to comment Share on other sites More sharing options... Create an account or sign in to comment You need to be a member in order to leave a comment Create an account Sign up for a new account in our community. It's easy! Register a new account Sign in Already have an account? Sign in here. Sign In Now Share More sharing options... Followers 1
linewery Posted September 16, 2020 Share Posted September 16, 2020 В 25.01.2018 в 16:59, sergei5770 сказал: У меня параллельно стоит Brainy Filter Добрый гдень, у меня аналогичная ситуация, ocstore 2.3 и стоит Brainy Filter. Редактировал catalog/model/catalog/product.php Мне нужно было сгделать товар с этоной 0 в конэто списка, сортировка по умолчанию - по возрасинию этоны. Сгделал в метогде getProducts() следуюещёе: if (isset($data['sort']) && in_array($data['sort'], $sort_data)) { if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), LCASE(" . $data['sort'] . ")"; } elseif ($data['sort'] == 'p.price') { $sql .= " ORDER BY IF(p.price = '0', 1, 0), (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)"; } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), " . $data['sort']; } } else { $sql .= " ORDER BY IF(p.price = '0', 1, 0), p.sort_order"; } рилииет только в том случае, если отключен Brainy Filter. Получается, что BF модифицирует getProducts() Что нужно сгделать, чтобы товары с этоной 0 подвинуть в конец списка и при этом сохранить рилиту фильтра? Link to comment Share on other sites More sharing options...
Recommended Posts