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

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

*

disallow

  • *
  • 9
  • +0/-0
    • Просмотр профиля
Добрый день.
Подскажите, пож-та такой вопрос. Есть каталог со множеством подкатагерии забитых в UMI (в категориях содержаться объекты каталога). Пытаюсь сделать выпадающее многоуровневое меню с выводом категорий каталога. Но так как вложенных категорий много хотелось бы ограничить вывод хотябы двумя уровнями. Как это можно сделать? В маркосе getCategoryList нет таких атрибутов.

Вывод осуществляется таким образом.
   <xsl:template match="item" mode='main_menu'>
      <li><a href='{@link}'><xsl:value-of select="." /></a>
         <ul>
            <xsl:apply-templates select="document(concat('udata://catalog/getObjectsList/void/',@id))/udata/lines/item" mode='sub_menu'/>
            <xsl:apply-templates select="document(concat('udata://catalog/getCategoryList/void/',@id))/udata" mode='sub_menu'/>
            <xsl:apply-templates select="document(concat('upage://',@id))/udata//group[title='Описание марки']/property/title" mode='sub_menu'/>
         </ul>
      </li>
   </xsl:template>
   
   <xsl:template match="item" mode='sub_menu'>
      <li><a href='{@link}'><xsl:value-of select="." /></a>
         <ul>
            <xsl:apply-templates select="document(concat('udata://catalog/getObjectsList/void/',@id))/udata/lines/item" mode='sub_menu'/>
            <xsl:apply-templates select="document(concat('udata://catalog/getCategoryList/void/',@id))/udata" mode='sub_menu'/>
            <xsl:apply-templates select="document(concat('upage://',@id))/udata//group[title='Описание марки']/property/title"/>
         </ul>
      </li>
   </xsl:template>
   
   <xsl:template match="title">
      <li><a href='{@link}'><xsl:value-of select="." /></a></li>
   </xsl:template>

Спасибо.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Ограничить вывод категорий каталога
« Ответ #1 : 04 Октября 2011, 13:33:48 »
опять же успел придумать варианта 3 что именно ты пытаешься сделать ,но в любом случае если есть потребность вывести только 2 категории используя макрос getCategoryList, то воспользуйся параметром per_page (описание макроса) поставив в него значение 2 (или какое требуется).

Если я не так понял задачу и такой вариант не подходит, ограничь вывод категорий используя шаблоны то есть сделай шаблон для вывода подкатегории и второй шаблон для вывода подкатегории  пустым результатом если данная подкатегория в списке результатов находиться 3 или более

Если же у тебя проблема в рекурсивности, то есть ты постоянно используешь шаблон <xsl:template match="item" mode='sub_menu'> , но в каких-то случаях надо вывести все категории, в каких-то ограниченное свойство, то создай доп шаблон и пропиши в него дополнительное условие, например бери данную категорию, вытаскивай из неё всех родителей, если среди родителей есть больше чем 2 раздела каталога, то выводить только по 2 подраздела.