question Опубликовано 9 февраля, 2019 Жалоба Поделиться Опубликовано 9 февраля, 2019 Подскажите, в какую сторону копать, где искать этот ORDER BY или SORT BY, чтобы в итоге в админке товары сортировались по- дате создания- цене- наличию картинки- наличию скидкии т.д. и т.п.P.S. Если что, у меня есть в s_variants поле sold типа Дата и стоит задача показывать те товары, которые были проданы недавно. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 9 февраля, 2019 Жалоба Поделиться Опубликовано 9 февраля, 2019 Если хотите в админке разные сортировки, то вопрос очень непростой, так как изначально в админке есть сортировка по умолчанию, и работает сортировка перетаскиванием. Простым способом совсем хорошо вряд ли выйдет, много переделывать надо. Либо вообще отказываться от сортировки по умолчанию и перетаскиваний... Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 9 февраля, 2019 Жалоба Поделиться Опубликовано 9 февраля, 2019 А по-моему, ТС просто НЕ ПОНИМАЕТ, ЧТО такое сортировка)))И чем Сортировка отличается от ФИЛЬТРАЦИИ...Если принять этот факт - то все намного проще оказывается)) Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 9 февраля, 2019 Жалоба Поделиться Опубликовано 9 февраля, 2019 А по-моему, ТС просто НЕ ПОНИМАЕТ, ЧТО такое сортировка)))И чем Сортировка отличается от ФИЛЬТРАЦИИ...Если принять этот факт - то все намного проще оказывается)) Он просто в один вопрос включил и сортировку и фильтрацию. Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 9 февраля, 2019 Жалоба Поделиться Опубликовано 9 февраля, 2019 Подскажите, в какую сторону копать, где искать этот ORDER BY или SORT BY, чтобы в итоге в админке товары сортировались по- дате создания- цене- наличию картинки- наличию скидкии т.д. и т.п.P.S. Если что, у меня есть в s_variants поле sold типа Дата и стоит задача показывать те товары, которые были проданы недавно. вы просто определитесь что вам нужно? фильтрация или сортировка. Например по дате создания - это сортировка.а вот по наличию картинки и наличию скидки это уже фильтрация. Как вы будете сортировать наличие скидки или картинку? это ведь либо есть либо нет. То есть тут конкретный признак. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 9 февраля, 2019 Жалоба Поделиться Опубликовано 9 февраля, 2019 вы просто определитесь что вам нужно? фильтрация или сортировка. Например по дате создания - это сортировка. а вот по наличию картинки и наличию скидки это уже фильтрация. Как вы будете сортировать наличие скидки или картинку? это ведь либо есть либо нет. То есть тут конкретный признак.Можно сделать сортировку по любому полю. Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 10 февраля, 2019 Жалоба Поделиться Опубликовано 10 февраля, 2019 Можно сделать сортировку по любому полю. так то да, наверное это уже мои догадки)я бы сделал именно сортировку и фильтр как выше написал. Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 10 февраля, 2019 Автор Жалоба Поделиться Опубликовано 10 февраля, 2019 (изменено) Он просто в один вопрос включил и сортировку и фильтрацию.Меня интересует и группировка и сортировка - и то и то.Где-то на форуме проскакивала тема с готовым решением, но там было что-то типа "показывать только хиты", "показывать сначала товары со скидкой" и т.д. Мне нужно понять, в каком файле формируется SQL запрос. Изменено 10 февраля, 2019 пользователем question Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 10 февраля, 2019 Автор Жалоба Поделиться Опубликовано 10 февраля, 2019 (изменено) Как вы будете сортировать наличие скидки или картинку? это ведь либо есть либо нет. То есть тут конкретный признак.Сначала с картинкой, затем - без неё. Изменено 10 февраля, 2019 пользователем question Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 10 февраля, 2019 Жалоба Поделиться Опубликовано 10 февраля, 2019 Сначала с картинкой, затем - без неё. да эт я тупанул, согласен что можно так сделать. Но я бы лучше фильтр сделал. Как в симпле по дефолту например товары в наличии. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 10 февраля, 2019 Жалоба Поделиться Опубликовано 10 февраля, 2019 Меня интересует и группировка и сортировка - и то и то. Где-то на форуме проскакивала тема с готовым решением, но там было что-то типа "показывать только хиты", "показывать сначала товары со скидкой" и т.д.Что касайется фильтрации, то стандартно в товарах в админке есть фильтры Рекомендуемые, Со скидкой, Активные, Неактивные, Отсутствующие. Аналогия полнейшая, действуйте...Мне нужно понять, в каком файле формируется SQL запрос.Разные запросы формируются в разных файлах. По Вашей задаче - скорее всего, в api/Products.php... Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 10 февраля, 2019 Автор Жалоба Поделиться Опубликовано 10 февраля, 2019 Что касайется фильтрации, то стандартно в товарах в админке есть фильтры Рекомендуемые, Со скидкой, Активные, Неактивные, Отсутствующие.Аналогия полнейшая, действуйте...Разные запросы формируются в разных файлах. По Вашей задаче - скорее всего, в api/Products.php...Спасибо, буду ковырять.Не могу ту самую тему о расширении функционала фильтрации (или сортировки) найти, может кто встречал? Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 10 февраля, 2019 Автор Жалоба Поделиться Опубликовано 10 февраля, 2019 (изменено) Нашёл в products.php строчку $order = 'p.visible DESC, p.position DESC' И далее она применяется в коде так: ORDER BY $order Ну хорошо, вот она и сортировка по умолчанию, достаточно будет заменить на $order = 'pv.sold'; И получить искомую сортировку. Стоп. А где формируется переменная $order и где она передаётся методом get? Я этого места не нашёл. Да и вообще из админки она не передаётся. site.ru/simpla/?order=price не будет сортировать товары... Изменено 10 февраля, 2019 пользователем question Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 11 февраля, 2019 Жалоба Поделиться Опубликовано 11 февраля, 2019 А где формируется переменная $order и где она передаётся методом get? Я этого места не нашёл. Да и вообще из админки она не передаётся. site.ru/simpla/?order=price не будет сортировать товары...Вам было бы хорошо хоть основы программирования изучить. Возможно, тогда не задавали бы сплошным потоком некорректные вопросы... Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 11 февраля, 2019 Автор Жалоба Поделиться Опубликовано 11 февраля, 2019 Ок, щас прочёл основы программирования. А в чём вопрос некорректен?Переменная $order есть? Есть.В одном месте вижу, ей присваевается строка, понимаю, в другом месте тоже, найти не могу. Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 11 февраля, 2019 Автор Жалоба Поделиться Опубликовано 11 февраля, 2019 (изменено) А где формируется переменная $order и где она передаётся методом get? Я этого места не нашёл. Да и вообще из админки она не передаётся. site.ru/simpla/?order=price не будет сортировать товары...Этот url не работает потому что в /simpla/ProductsAdmin.php изначально отсутствует строка $filter['sort'] = $this->request->get('sort', 'string'); Изменено 11 февраля, 2019 пользователем question Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 11 февраля, 2019 Жалоба Поделиться Опубликовано 11 февраля, 2019 $order = 'pv.sold'; ...А где формируется переменная $order Например, в указанной Вами строке формируется. А в CMS вообще такая переменная формируется еще в десятках мест... ...и где она передаётся методом get? Прежде чем задавать такой вопрос, надо убедиться в том, что она вообще где-то передается. А до того вопрос некорректный.Вот Вы сначала попробуйте обосновать то, что где-то передается - и не тяп-ляп кое-как, а доказательно... Этот url не работает потому что в /simpla/ProductsAdmin.php изначально отсутствует строка $filter['sort'] = $this->request->get('sort', 'string'); Еще одна бессмысленность... Цитата Ссылка на сообщение Поделиться на другие сайты
Решение question Опубликовано 11 февраля, 2019 Автор Решение Жалоба Поделиться Опубликовано 11 февраля, 2019 (изменено) Добавил в Products.php строки case 'sold': $order = '(SELECT MAX(pv.sold) FROM __variants pv WHERE p.id = pv.product_id AND pv.position= (SELECT MIN(position) FROM __variants WHERE product_id=p.id LIMIT 1) LIMIT 1) desc'; break; Заработало. Изменено 11 февраля, 2019 пользователем question Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 11 февраля, 2019 Автор Жалоба Поделиться Опубликовано 11 февраля, 2019 (изменено) phukortsin, вам бы для начала основы программирования изучить. А то новичок больше вас знает. Изменено 11 февраля, 2019 пользователем question Цитата Ссылка на сообщение Поделиться на другие сайты
question Опубликовано 11 февраля, 2019 Автор Жалоба Поделиться Опубликовано 11 февраля, 2019 В итоге сделал "админку для кладовщика" с урезанным функционалом, в которой можно только менять количество товара + сохранение через ajax + возможна сортировка по дате продажи. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.