-=NICROSS=- Опубликовано 16 августа, 2016 Жалоба Поделиться Опубликовано 16 августа, 2016 Есть каталог и товары только в подкатегориях. Категория 1 Подкатегория 1.1 Подкатегория 1.2Категория 2 Если в админке поменять местами подкатегории и расставить так: Категория 1 Подкатегория 1.2 Подкатегория 1.1Категория 2 то на сайте порядок товаров какой был, такой и останется, то есть заходя в Категория 1, сначала будут идти товары Подкатегория 1.1. Как сделать, чтобы товары сортировались согласно порядку подкатегорий? Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 16 августа, 2016 Жалоба Поделиться Опубликовано 16 августа, 2016 сделайте в api/Products.php новую сортировку по айди категории+позиция на подобии как реализованы другие сортировки. только если у товара будет 2 категории например, то брать первую. Цитата Ссылка на сообщение Поделиться на другие сайты
-=NICROSS=- Опубликовано 16 августа, 2016 Автор Жалоба Поделиться Опубликовано 16 августа, 2016 сделайте в api/Products.php новую сортировку по айди категории+позиция на подобии как реализованы другие сортировки. только если у товара будет 2 категории например, то брать первую. Помоги, пожалуйста, сделать, а то не соображу как сделать сортировку по позиции. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 17 августа, 2016 Жалоба Поделиться Опубликовано 17 августа, 2016 попробуйте в api/Products.php в ф-ю get_products(..) добавить после case 'created': $order = 'p.created DESC'; break; добавить case 'category': $order = '(SELECT category_id FROM __products_categories WHERE product_id = p.id LIMIT 1), p.position DESC'; break; и в view/ProductsView.php поменять $filter['sort'] = 'position'; на $filter['sort'] = 'category'; Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 17 августа, 2016 Жалоба Поделиться Опубликовано 17 августа, 2016 По-моему, что предлагаемый метод далек от того, что просил ТС, то есть "сделать сортировку по позиции".1. В простых случаях (когда у каждого товара ОДНА категория), метод сортирует по ID категории.2. В сложных (когда встречаются товары, входящие в несколько категорий) будет вообще непредсказуемый хаос... Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 17 августа, 2016 Жалоба Поделиться Опубликовано 17 августа, 2016 (изменено) как всегда только бы ляпнуть По-моему, что предлагаемый метод далек от того, что просил ТС, то есть "сделать сортировку по позиции". ТС просил сделать сортировку по категории + позиция. читаем внимательно. 1. В простых случаях (когда у каждого товара ОДНА категория), метод сортирует по ID категории. сортировка проходит вообще-то по двум полям, возможно стоит еще раз посмотреть. я указал два поля 2. В сложных (когда встречаются товары, входящие в несколько категорий) будет вообще непредсказуемый хаос... не уверен в ваших словах. при нескольких категориях будет выбираться всегда первая запись из базы с position 0; и по ней будет идти сортировка. в списке товаров. если человек находится в конкретной категории можно добавить еще вместо $filter['sort'] = 'category'; условие для категории в которой нет дочерних if(empty($category->children)) $filter['sort'] = 'position'; else $filter['sort'] = 'category'; знаете лучший способ, не вижу ваших сообщений с решением. Изменено 17 августа, 2016 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 17 августа, 2016 Жалоба Поделиться Опубликовано 17 августа, 2016 ТС просил сделать сортировку по категории + позиция. читаем внимательно. 1. В #1 ТС просил "чтобы товары сортировались согласно порядку подкатегорий". В #3 ТС просил "не соображу как сделать сортировку по позиции".2. Вы же написали "сортировку по категории". Это, строго говоря, бессмыслица.3. В реальности у Вас сортирует по ID подкатегорий, а не по порядку подкатегорий. сортировка проходит вообще-то по двум полям, возможно стоит еще раз посмотреть. я указал два поля Да, Вы указали ДВА поля$order = '(SELECT category_id FROM __products_categories WHERE product_id = p.id LIMIT 1), p.position DESC'; Первое поле - это именно ID категории, к которой относится товар (будем для простоты считать, что у товара ОДНА категория).Выходит, сортируется по ID категории, а внутри блоков с одинаковыми ID - по позициям. А ТС-то просил не по ID категории, а по порядку категорий. Если и после этого еще непонятно, прочтите еще раз #1, там ТС ведет речь про то, что если "в админке поменять местами подкатегории", то и результат сортировки должен измениться. А в Вашем методе - как ни меняй, будет все одинаково... Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 17 августа, 2016 Жалоба Поделиться Опубликовано 17 августа, 2016 (изменено) Если и после этого еще непонятно, прочтите еще раз #1, там ТС ведет речь про то, что если "в админке поменять местами подкатегории", то и результат сортировки должен измениться. А в Вашем методе - как ни меняй, будет все одинаково... либо вы тупой либо я либо лыжи не едут. где тут написано что если изменить местами категории то результат должен поменяться? Если в админке поменять местами подкатегории и расставить так: ...то на сайте порядок товаров какой был, такой и останется, то есть заходя в Категория 1, сначала будут идти товары Подкатегория 1.1. Изменено 17 августа, 2016 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 18 августа, 2016 Жалоба Поделиться Опубликовано 18 августа, 2016 Вот тут соглашусь с корсом, именно в первом посте прямо написано, что при изменении ПОРЯДКА категорий должен меняться вывод, т.е. сортировать надо конкретно по position категории Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 18 августа, 2016 Жалоба Поделиться Опубликовано 18 августа, 2016 Вот тут соглашусь с корсом, именно в первом посте прямо написано, что при изменении ПОРЯДКА категорий должен меняться вывод, т.е. сортировать надо конкретно по position категории так выходит что нет, либо я чего-то не понимаю. ТС написал Если в админке поменять местами подкатегории и расставить так: то на сайте порядок товаров какой был, такой и останется, то есть заходя в Категория 1, сначала будут идти товары Подкатегория 1.1. что значит если поменять порядок категорий - изменятся позиции. при этом сортировка не должна меняться.и дальше написано, что нужно сортировать по порядку категорий, видимо до сортировки, то есть как создали их изначально. потому что выше написано что порядок не должен меняться Как сделать, чтобы товары сортировались согласно порядку подкатегорий? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 18 августа, 2016 Жалоба Поделиться Опубликовано 18 августа, 2016 Так ТС хочет, чтобы порядок сортировки товаров ПОМЕНЯЛСЯ при изменении позиций категорий в админке.Я так понял. Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 18 августа, 2016 Жалоба Поделиться Опубликовано 18 августа, 2016 (изменено) ТС, конечно, написал задание в #1 не образцово, но понять можно. У него сказано:Если в админке поменять местами подкатегории и расставить так: Категория 1 Подкатегория 1.2 Подкатегория 1.1Категория 2 то на сайте порядок товаров какой был, такой и останется, то есть заходя в Категория 1, сначала будут идти товары Подкатегория 1.1. Как сделать, чтобы товары сортировались согласно порядку подкатегорий? Он сначала сказал о текущем положении на его сайте "Если поменять местами подкатегории ... " (то есть изменить их порядок), то "на сайте порядок товаров какой был, такой и останется". А затем уже спросил "Как сделать, чтобы..."Вроде бы тут однозначно выходит - если сейчас не меняется, то значит, НАДО ЧТОБ МЕНЯЛОСЬ. и дальше написано, что нужно сортировать по порядку категорий, видимо до сортировки, то есть как создали их изначально. То есть сортировать по каким-то старым позициям, которая были в позапрошлом году?Даже если Вы и так поняли, несмотря на всю бессмысленность такой постановки вопроса, Ваше решение никак не делает такого, ибо сортирует по ID подкатегорий.Хорошо Вы сказали: либо вы тупой либо я либо лыжи не едут. Изменено 18 августа, 2016 пользователем Kors Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 18 августа, 2016 Жалоба Поделиться Опубликовано 18 августа, 2016 Делаем как в посте #4 от Мишани, только в 1м действии добавляем это: case 'category': if(!empty($filter['category_id'])) $order = $this->db->placehold("FIELD(pc.category_id, ?@), p.position", (array)$filter['category_id']); break; Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 19 августа, 2016 Жалоба Поделиться Опубликовано 19 августа, 2016 Делаем как в посте #4 от Мишани, только в 1м действии добавляем это: case 'category': if(!empty($filter['category_id'])) $order = $this->db->placehold("FIELD(pc.category_id, ?@), p.position", (array)$filter['category_id']); break; Шикарное решение! Просто великолепно! Цитата Ссылка на сообщение Поделиться на другие сайты
-=NICROSS=- Опубликовано 20 августа, 2016 Автор Жалоба Поделиться Опубликовано 20 августа, 2016 Всем спасибо большое за участие!!!Все получилось!! Выкладываю рабочий вариант, может кому пригодится. 1. В api/Products.php в ф-ю get_products(..) добавить после case 'created': $order = 'p.created DESC'; break; добавить case 'category': if(!empty($filter['category_id'])) $order = $this->db->placehold("FIELD(pc.category_id, ?@), p.position", (array)$filter['category_id']); break; 2. В view/ProductsView.php заменить $filter['sort'] = 'position'; на $filter['sort'] = 'category'; 3. В файле products.tpl вашего шаблона (везде, где будет сортировка) добавить: <a {if $sort=='category'} class="selected"{/if} href="{url sort=category page=null}">Свой сортировка</a> Цитата Ссылка на сообщение Поделиться на другие сайты
Maksclub Опубликовано 21 августа, 2016 Жалоба Поделиться Опубликовано 21 августа, 2016 (изменено) Всем спасибо большое за участие!!!Все получилось!! Выкладываю рабочий вариант, может кому пригодится. 1. В api/Products.php в ф-ю get_products(..) добавить после case 'created': $order = 'p.created DESC'; break; добавить case 'category': if(!empty($filter['category_id'])) $order = $this->db->placehold("FIELD(pc.category_id, ?@), p.position", (array)$filter['category_id']); break; 2. В view/ProductsView.php заменить $filter['sort'] = 'position'; на $filter['sort'] = 'category'; 3. В файле products.tpl вашего шаблона (везде, где будет сортировка) добавить: <a {if $sort=='category'} class="selected"{/if} href="{url sort=category page=null}">Свой сортировка</a> Спасибо пригодится. Есть пару задумок для такого дела, но я использовал виджет get-products, пока для меня он гибче Изменено 21 августа, 2016 пользователем Maksclub Цитата Ссылка на сообщение Поделиться на другие сайты
Марина Опубликовано 30 сентября, 2016 Жалоба Поделиться Опубликовано 30 сентября, 2016 Здравствуйте подскажите, что не так в шаблоне, почему не работает сортировка:{if $products} {if $products|count>0} <div class="sort-box clearfix"> <label class="label" for="sort">Сортировать по:</label> {if $sort=='price'}<span>умолчанию</span>{else}<a href="{url sort=position page=null}">умолчанию</a>{/if} {if $sort=='price'}<span>цене</span>{else}<a href="{url sort=position page=null}">цене</a>{/if} {if $sort=='name'}<span>названию</span>{else}<a href="{url sort=position page=null}">названию</a>{/if} <label class="select-sm"> <select id="sort"> <option {if $sort=='position'} selected="selected"{/if} value="{url sort=position page=null}">умолчанию</option> <option {if $sort=='price'} selected="selected"{/if} value="{url sort=price page=null}">цене</option> <option {if $sort=='name'} selected="selected"{/if} value="{url sort=name page=null}">названию</option> </select> </label> <div id="view" class="view"> <a href="url sort=position page=null" class="grid {if $view == 'grid'} current{/if}" data-view="grid">сеткой</a> <a href="#" class="list {if $view == 'list'} current{/if}" data-view="list">списком</a> <a href="#" class="table {if $view == 'table'} current{/if}" data-view="table">таблицей</a> </div> </div> {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 30 сентября, 2016 Жалоба Поделиться Опубликовано 30 сентября, 2016 Здравствуйте подскажите, что не так в шаблоне, почему не работает сортировка: Что у Вас "не так в шаблоне", сказать невозможно, не зная Вашего шаблона.В приведенном фрагменте "не так" то, что открывается вначале два {if}, а в конце закрывается только один {/if}.Еще в приведенном фрагменте в части <select id="sort">...</select> нечто странное. Как будто просто копировали без особого понимания. Чтобы такое осмысленно работало, надо писать JS под этот фрагмент.Почему "не работает сортировка" тоже сказать сложно, не зная всех деталей того, что Вы натворили. Почини мне то, не скажу что... Цитата Ссылка на сообщение Поделиться на другие сайты
Марина Опубликовано 30 сентября, 2016 Жалоба Поделиться Опубликовано 30 сентября, 2016 Что у Вас "не так в шаблоне", сказать невозможно, не зная Вашего шаблона.В приведенном фрагменте "не так" то, что открывается вначале два {if}, а в конце закрывается только один {/if}.Еще в приведенном фрагменте в части <select id="sort">...</select> нечто странное. Как будто просто копировали без особого понимания. Чтобы такое осмысленно работало, надо писать JS под этот фрагмент.Почему "не работает сортировка" тоже сказать сложно, не зная всех деталей того, что Вы натворили. Почини мне то, не скажу что...Я ничего не творила, Молодой человек поставил шаблон, просила его доделать нормально, как было заявлено. Получила отказ. А еще мало того, начал воровать - сносить всё с сайта, пока мне служба поддержки не помогла и не заблокировала все входы.Вот такая печалька. а доработок теперь просто немеренно.... Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 30 сентября, 2016 Жалоба Поделиться Опубликовано 30 сентября, 2016 Я ничего не творила, Молодой человек поставил шаблон, просила его доделать нормально, как было заявлено. Получила отказ. А еще мало того, начал воровать - сносить всё с сайта, пока мне служба поддержки не помогла и не заблокировала все входы. Вот такая печалька. а доработок теперь просто немеренно....Тогда так: Почему "не работает сортировка" - сказать сложно, не зная всех деталей того, что натворили Вы или "Молодой человек" - Ваш работник. Можно только посочувствовать. Если готовы оплачивать - обращайтесь... Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 9 декабря, 2016 Жалоба Поделиться Опубликовано 9 декабря, 2016 Есть каталог и товары только в подкатегориях. Категория 1 Подкатегория 1.1 Подкатегория 1.2Категория 2 Если в админке поменять местами подкатегории и расставить так: Категория 1 Подкатегория 1.2 Подкатегория 1.1Категория 2 то на сайте порядок товаров какой был, такой и останется, то есть заходя в Категория 1, сначала будут идти товары Подкатегория 1.1. Как сделать, чтобы товары сортировались согласно порядку подкатегорий? Друзья,а как сделать так, чтоб при открытие Категория 1 отображались товары согласно порядку подкатегории а также и по позиции товаров в этих Подкатегориях?то есть Категория 1 (согласно позиции подкатегории)+(согласно позиции товаров) Подкатегория 1.1 (согласно позиции товаров) Подкатегория 1.2 (согласно позиции товаров) Согласно позиции подкатегории выше сделано, за что большое спасибо, а вот с позициями товаров ? Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 9 декабря, 2016 Жалоба Поделиться Опубликовано 9 декабря, 2016 Друзья,а как сделать так, чтоб при открытие Категория 1 отображались товары согласно порядку подкатегории а также и по позиции товаров в этих Подкатегориях?то есть Категория 1 (согласно позиции подкатегории)+(согласно позиции товаров) Подкатегория 1.1 (согласно позиции товаров) Подкатегория 1.2 (согласно позиции товаров) Согласно позиции подкатегории выше сделано, за что большое спасибо, а вот с позициями товаров ? и в чем заключается логика? Как вы себе это представляете? Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 9 декабря, 2016 Жалоба Поделиться Опубликовано 9 декабря, 2016 (изменено) и в чем заключается логика? Как вы себе это представляете? внес изменения позиции товаров в подкотегории, например в Подкатегория 1.1, а также в Подкатегория 1.2. При нажатие главной Категория 1, чтоб сортировка категории, как ранее сделали, а также показала все товары с подкатегории:Подкатегория 1.1Подкатегория 1.2 но только в том порядке, в котором товары распределены также как и в Подкатегориях ранее. Надеюсь подробно объяснил?! Изменено 9 декабря, 2016 пользователем DarAmal Цитата Ссылка на сообщение Поделиться на другие сайты
yr4ik Опубликовано 9 декабря, 2016 Жалоба Поделиться Опубликовано 9 декабря, 2016 То что вы описываете - есть в решении выше. Сначала в приорите категории затем позиции товаров Цитата Ссылка на сообщение Поделиться на другие сайты
daramal Опубликовано 9 декабря, 2016 Жалоба Поделиться Опубликовано 9 декабря, 2016 То что вы описываете - есть в решении выше. Сначала в приорите категории затем позиции товаров С категориями все отлично показывает. Но товары сортируются по ID, а не по позиции ((сколько меняешь позиции товаров в подкатегории, все равно выдает по ID Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.