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

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

Ответов: 11
Просмотров: 3188
Последний ответ 23 Апреля 2015, 23:15:04
от john
Вопрос по выводу дочерних страниц модуля структура

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

Ответов: 5
Просмотров: 2013
Последний ответ 07 Марта 2014, 17:34:18
от e.ioffe
Вопрос по организации отображения фотоальбома

Автор AksukРаздел Настройка системы и модулей

Ответов: 11
Просмотров: 4114
Последний ответ 23 Сентября 2011, 01:42:09
от Aksuk
вопрос новичка по emarket cart

Автор slavikРаздел Настройка системы и модулей

Ответов: 6
Просмотров: 1422
Последний ответ 23 Июля 2014, 22:16:21
от slavik
Вопрос по выборки Usel

Автор atachРаздел Custom макросы

Ответов: 5
Просмотров: 2103
Последний ответ 11 Сентября 2012, 13:58:47
от atach

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

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Вопрос по сортировке
« : 03 Апреля 2013, 16:47:38 »
Вопрос наверное глупый, но я только недавно начал осваивать xslt.
Есть вызов шаблона для показа элементов каталога, в котором я указываю сортировку по цене, но сортировка почему-то упорно не работает  :'(
<xsl:apply-templates select="//lines/item" mode="short-view">
<xsl:sort order="ascending" select="//property[@name='price']/value" />
<xsl:with-param name="cart_items" select="document('udata://emarket/cart/')/udata/items" />
<xsl:with-param name="main_page" select="1" />
<xsl:with-param name="showdesc" select="true()" />
</xsl:apply-templates>

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Вопрос по сортировке
« Ответ #1 : 04 Апреля 2013, 07:59:35 »
для того чтобы у вас работа сортировка, вам необходимо что информация о цене была в xml который вы вызвали макросом, для этого вам скорее всего подойдет ?extProps параметр (см в документации Получение расширенных полей и групп) или похожая задача, обсуждаемая на форуме,  которая использовала для фильтрации дополнительное поле при вызове макроса content menu()

И скорее всего вам необходимо будет немного поправить свой шаблон, добавив точку перед //property:
<xsl:sort order="ascending" select=".//property[@name='price']/value" />

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Re:Вопрос по сортировке
« Ответ #2 : 04 Апреля 2013, 10:00:13 »
Спасибо за наводку. ?extProps использовать не могу - система 2.4.4 без возможности обновления. Буду думать... Наверное сам просто что-то подобное допишу, все равно уже системные файлы исправлены...

*

arbuzzz

  • **
  • 80
  • +1/-0
    • Просмотр профиля
Re:Вопрос по сортировке
« Ответ #3 : 04 Апреля 2013, 10:52:42 »
Решил без костылей. Просто немного усложнил вытащив цену.

<xsl:sort order="descending" select="document(concat('upage://',@id))//property[@name = 'price']/value" data-type="number"/>

Для того что бы сортировалось как число, а не как строка, передан параметр
data-type="number"

*

admin

  • *****
  • 2419
  • +172/-1
    • Просмотр профиля
Re:Вопрос по сортировке
« Ответ #4 : 04 Апреля 2013, 11:24:42 »
отличный вариант, по экономичности ресурсов не сильно хорош, но зато быстр и мобилен в реализации.

Если нужно будет сделать более бережливый к ресурсам вариант, то сделайте копию макроса %catalog getObjectsList()% и добавить там вывод цены

$line_arr = Array();
$line_arr['attribute:id'] = $element_id;
$line_arr['attribute:alt_name'] = $element->getAltName();
$line_arr['attribute:price'] = $element->getValue('price');
$line_arr['attribute:link'] = umiHierarchy::getInstance()->getPathById($element_id);
$line_arr['xlink:href'] = "upage://" . $element_id;
$line_arr['node:text'] = $element->getName();