Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Сортировка товаров каталога - по цене, названию, популярности

Автор manadsgnРаздел Шаблоны XSLT

Ответов: 26
Просмотров: 10327
Последний ответ 29 Декабря 2016, 19:17:07
от Axiomateria
Сортировка выпадающего списка в фильтре

Автор koroganРаздел Макросы UMI.CMS

Ответов: 4
Просмотров: 3303
Последний ответ 07 Июля 2012, 13:28:53
от korogan
Сортировка по дате объектов каталога

Автор thecoderРаздел Шаблоны XSLT

Ответов: 12
Просмотров: 3842
Последний ответ 09 Июля 2013, 17:20:00
от admin
Сортировка объектов каталога вадминке

Автор niakrissРаздел Макросы UMI.CMS

Ответов: 9
Просмотров: 3336
Последний ответ 11 Октября 2013, 09:39:26
от niakriss
Сортировка товаров с помощью select

Автор chutovo_kramРаздел Шаблоны TPL

Ответов: 3
Просмотров: 1624
Последний ответ 29 Мая 2014, 14:33:58
от admin

0 Пользователей и 1 Гость просматривают эту тему.

*

cybermax

  • *
  • 16
  • +1/-0
    • Просмотр профиля
Двойная сортировка
« : 15 Апреля 2012, 16:15:57 »
Здравствуйте подскажите пожалуйста как в юми сделать двойную сортировку, например, мне нужно отсортировать товары в разделе каталога по цене и по наличию?
В getobjectList можно задать только один параметр сортировки

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Двойная сортировка
« Ответ #1 : 18 Апреля 2012, 10:27:57 »
- написать кастом на основе макроса %catalog getObjectsList()%
- сделать вывод с помощью usel и там указать двойную сортировку

первый, самый простой и "чистый" вариант

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
Re:Двойная сортировка
« Ответ #2 : 19 Апреля 2012, 16:19:00 »
как в usel сделать, чтобы не попадал определенный товар?
я предполагаю что надо использовать атрибут mode="not", но по какому property его отфильтровать.
Казалось-бы:
<property name="name" value="{my_name}" mode="not"/>
но млин не работает?! почему?
Все равно этот товар попадает в выборку. admin мож Вы поможете, в чем может быть трабл
PS хотя без атрибута NOT все работает, т.е. попадает только этот товар
может этот NOT не корректно работает
« Последнее редактирование: 19 Апреля 2012, 16:24:28 от KTI »

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Двойная сортировка
« Ответ #3 : 20 Апреля 2012, 17:54:07 »
то есть с
<property name="name" value="stranica1" />
выводиться страница с именем stranica1, а при
<property name="name" value="{my_name}" mode="not"/>

не выводиться ничего?

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
Re:Двойная сортировка
« Ответ #4 : 23 Апреля 2012, 15:20:00 »
да! именно так
попробуйте у себя
видимо not с именами не умеет работать
(я еще отдельную ветку завел по этому вопросу)

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Двойная сортировка
« Ответ #5 : 26 Апреля 2012, 01:31:22 »
ты прав, в коде ясно видно что фильтрация по name="name" и mode проигнорируется
if($fieldName != "name") {
if($mode) {
$selectionObj->where($fieldName)->notequals($value);
return true;
} else {
if($like) {
$selectionObj->where($fieldName)->like('%' . $value . '%');
} else {
$selectionObj->where($fieldName)->equals($value);
}
return true;
}
} else {
if(!$mode) {
if($like) {
$selectionObj->where('name')->like('%' . $value . '%');
} else {
$selectionObj->where('name')->equals($value);
}
return true;
} else {
return false;
}
}

так что, надо писать кастом

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
Re:Двойная сортировка
« Ответ #6 : 27 Апреля 2012, 09:42:41 »
что им помешало добавить одну строчку

$selectionObj->where('name')->notequals($value);
хотя, судя по коду, вероятно именно по этому name выделили отдельно
так-бы он не отличался от остальных, и код был-бы без
if($fieldName != "name") {}
« Последнее редактирование: 27 Апреля 2012, 09:46:53 от KTI »