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

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

Ответов: 16
Просмотров: 5708
Последний ответ 07 Июль 2013, 15:14:17
от Axiomateria
Usel выборка и поле ссылка на дерево

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

Ответов: 88
Просмотров: 3644
Последний ответ 22 Март 2016, 18:43:38
от Sumrakrnd
Дерево каталога товаров

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

Ответов: 13
Просмотров: 3637
Последний ответ 03 Февраль 2014, 14:37:20
от e.ioffe
Ссылка на дерево

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

Ответов: 4
Просмотров: 566
Последний ответ 06 Август 2015, 18:06:12
от webtrend
Решение с ajax-подгрузкой каталога товаров/объектов на страницу

Автор AisamieryРаздел JS и AJAX

Ответов: 7
Просмотров: 2478
Последний ответ 23 Март 2015, 13:49:04
от Aisamiery

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

*

EvgenyIvn

  • *
  • 5
  • +0/-0
    • Просмотр профиля
Здравствуйте!

Клиент попросил в результатах поиска выводить на странице сначала товары, а ниже страницы другого типа.
Макрос search_do возвращает данные в таком виде:
http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/poisk_po_sajtu/search_search_do/#xslt-templating

Обрабатываю их примерно так:
<xsl:apply-templates select="items/item" />

Шаблон для обработки item:
<xsl:template match="item">
   <!-- здесь получаю страницу -->
   <xsl:variable name="item_page" select="document(concat('upage://', @id))/udata/page" />
      <!-- прежде чем выводить страницу, проверяю ее тип -->
      <xsl:if test="$item_page/basetype/@module='catalog' and $item_page/basetype/@method='object'">
         <!-- здесь хотелось бы знать индекс итема -->
         <!-- position() в данном случае не подойдет т.к. мы используем условие -->
   </xsl:if>
</xsl:template>

1. Мне нужно знать индексы _выводимых_ итемов, но position() в данном случае не будет работать т.к. мы используем условие. В обычном языке программирования я бы добавил переменную ItemIndex, но в XSLT нельзя переопределить значение переменной. Не пойму как быть в данном случае?

2. Читал, что в XSLT можно построить временное дерево и затем применить шаблоны к нему. В таком случае я бы построил свое дерево и вывел бы в него тип страницы для последующей обработки другими шаблонами.
Возможно ли такое в рамках UMI?

*

BaceH

  • ***
  • 141
  • +21/-0
    • Просмотр профиля
Re:Временное дерево или др. решение
« Ответ #1 : 07 Июнь 2013, 21:00:23 »
Разбейте поиск на две части, ищете сначала поодной ветке потом по другой.

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Re:Временное дерево или др. решение
« Ответ #2 : 16 Июнь 2013, 02:10:55 »
в любом случае разделяйте на 2 вызова (у макроса search_do есть возможность задать типы данных по которым будет идти поиск или раздел внутри которого будет идти поиск) или пишите кастомный вариант search_do который сразу будет выводить в xml тип данных (или еще лучше возвращать 2 блока для 2 типов данных которые вас интересуют)