Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”

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

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
для того чтобы вывести ссылку на соритровку элементов каталога используется макрос %system order_by()%, если вам необходимо сортировка в обоих направлениях (А-Я,Я-А) то смотрите статью на wiki.umisoft Обновленный макрос system order by (двойная сортировка по одной ссылке)
К сожалению эта ссылка на wiki.umisoft на данный момент битая...
Однако полезная статья имеется в наличии по ссылке от admin : http://umihelp.ru/articles/custom_order_by-for_xslt/
в которой описывается варианты сортировки по полую цена (price)
<xsl:apply-templates select="document('udata://custom/order_by/price//11')" />

Вопрос: а как же всё-так по полю Название (namе) сортировать объекты каталога ?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
попробуйте решение от admin ( Создание двухсторонней сортировки order_by для xslt шаблонов) вызвать так
<xsl:apply-templates select="document('udata://custom/order_by/name//11')" />
« Последнее редактирование: 22 Марта 2015, 18:25:22 от admin »

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
попробуйте решение от admin (http://umihelp.ru/articles/custom_order_by-for_xslt/) вызвать так
<xsl:apply-templates select="document('udata://custom/order_by/name//11')" />
Спасибо! Этой статьёй уж неоднократно пользовался.

Правда сортировка происходит либо по цене либо по названию, то есть не получается отфильтровать сначала по цене, а потом ещё и по названию не сбросив результат фильтрации по цене.
Это потому что используются  <a href="{link}" class="direction{@direction}"> вместо <input> ?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
нет, это из-за того, что предыдущие сортировки сбрасываются на уровне самого макроса

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Сортировка не работает на страницах, где товары выводятся через usel.
Тот же самый сайт, те же самые товары, но разница их вывода на страницу не через
udata://catalog/getObjectsList/
а через
usel://sales/

В адресной строке всё так же добавляется /?&umi_authorization=&order_filter%5Bprice%5D=1
но ни чего не происходит...

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
параметры в адресной строке вида fields_filter и order_filter автоматически учитываются при выводе товаров макросом getObjectsList, для usel необходимо подхватывать эти параметры из адресной строки и передавать как параметры при вызове

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
для usel необходимо подхватывать эти параметры из адресной строки и передавать как параметры при вызове
а возможно ли с этого места поподробнее ? как мне кажется это подхватывание и передача в вызов...
в общем не понятно на каком хотя бы уровне кода это делать - PHP или USEL или XSLT...

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
если у вас параметры в адресной строке простого вида, типа price_order = 1

1. нужно как-то подхватит параметр из адресной строки
2. в usel файле создать заготовку для таких параметров, например для сортировке по цене посредством инструкции в usel файле
<sort order="{2}">{1}</sort>

3. При вызове usel передать эти параметры например так
usel://sales/price/asc

Остается вопрос как подхватить параметры. Можно передавать в адресную строку параметры другого вида и тогда все просто. Если в адресной строке параметры вида
?field_name=price&order=asc
, то создав глобальные параметры с соответвующими названиями
<xsl:param name="field_name" select="''"/>
<xsl:param name="order" select="''"/>

можно передавать их в usel
concat('usel://sales/',$field_name,'/',$order)

При этом варианте надо только переделать ссылки для сортировки.

Либо можно подхватывать параметры кастомным макросом, а результаты этого макроса подставлять к usel вызову

А можно отказаться от usel и сделать вывод товаров "распрадажа" силами getcategorylist...

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
А можно отказаться от usel и сделать вывод товаров "распрадажа" силами getcategorylist...
Вот у меня тоже такая мысль давно уже про это в голове с вопросом - как вызвать в таком случае udata://catalog/getCategoryList/notemplate/(market)/10  
, если объекты каталога в разделе выводятся по активному полю из типа данных "Распродажа" с идентификаторм "sales" (то есть галочку поставили и товар выводится в специальном разделе "Распродажа") через usel, то вот ума не приложу, как этот идентификатор подставить в вызов udata://catalog/getCategoryList/notemplate/(market)/10  
В переменную вогнать его ?

P.S. Спасибо за варианты про usel, чуть погодя попробую свершить.
« Последнее редактирование: 26 Ноября 2014, 16:01:07 от Axiomateria »

*

webkonditer

  • *
  • 5
  • +0/-0
    • Просмотр профиля
Здравствуйте форумчане!
Меня тоже интересует вопрос сортировки. Есть необходимость, чтобы можно было отсортировать товар по названию, по цене и по бренду.
Статьи по ссылкам в этой ветке форума удалены.
Может ли кто-то подсказать, как мне организовать указанную сортировку.
Заранее благодарен!

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Здравствуйте форумчане!
Меня тоже интересует вопрос сортировки. Есть необходимость, чтобы можно было отсортировать товар по названию, по цене и по бренду.
Статьи по ссылкам в этой ветке форума удалены.
Может ли кто-то подсказать, как мне организовать указанную сортировку.
Заранее благодарен!

Статья была перенесена в связи с переделкой дизайна и иерархии. Смотрите её тут  Создание двухсторонней сортировки order_by для xslt шаблонов

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
попробуйте решение от admin ( Создание двухсторонней сортировки order_by для xslt шаблонов) вызвать так
<xsl:apply-templates select="document('udata://custom/order_by/name//11')" />
С сортировкой по имени понятно.

Вопрос следующий: а как сортировать объекты каталога по их дате добавления?
Пользуясь тем же методом, что и сортировка по цене я пытаюсь отсортировать в этом случае так :
<xsl:apply-templates select="document('udata://custom/order_by/date_create_object//86')"  mode="order_by_data" />
Но это не срабатывает...
Где ошибка ?