UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: disallow от 10 Октября 2011, 11:20:13

Название: Многоуровневое меню с использованием USEL
Отправлено: disallow от 10 Октября 2011, 11:20:13
Всем доброго дня.
Возник следующий вопрос:
Решил сделать выпадающее меню с помощью USEL. Добавил в шаблон данных Раздел каталога группу Дополнительно, в этой группе добавил поле - Кнопка - флажок (назвал первый уровень). Проставил этот флажок всем разделам каталога так сказать первого уровня. Сделал в этой же группе такой же флажок (назвал второй уровень). Соответственно назначил его вложенным категориям.

Написал USEL для первого уровня (main_menu):
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="catalog" method="category" />
</target>
<property name="menu" value="1" />
</selection>

Написал USEL для второго уровня (sub_menu):
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="catalog" method="category" />
</target>
<property name="main_menu1" value="1" />
</selection>

Вывожу меню:
			<div id="page-wrap">
<xsl:apply-templates select="document('usel://main_menu')/udata" mode="main_menu" />
</div>
<!--Первый уровень-->
<xsl:template match="/udata"  mode='main_menu'>
<ul class="dropdown">
<xsl:apply-templates select="page" mode='main_menu_li'/>
</ul>
</xsl:template>
<!--Первый уровень-->


<xsl:template match="page" mode='main_menu_li'>
<li>
<a href='{@link}'><xsl:value-of select="name" /></a>
<!--Второй уровень-->
<ul class="submenu">
<xsl:apply-templates select="document('usel://sub_menu',@id)/udata" mode="sub_menu" />
</ul>
<!--Второй уровень-->
</li>
</xsl:template>

<xsl:template match="page" mode='sub_menu'>
<li>
<a href='{@link}'><xsl:value-of select="name" /></a>
</li>
</xsl:template>

Не могу сделать чтобы выпадающее меню второго уровня соответствовало родителю первого уровня.

Приведу пример:

1. Посуда
 1.1 Чашки
 1.2 Тарелки
2. Столовые приборы
 2.1 Вилки
 2.2 Ложки

У меня получается, что для первого уровня Посуда выводятся пункты 1.1,1.2,2.1,2.2. И тоже самое для Столовые приборы.
Подскажите как можно решить?
Уровень вложенности может быть не ограничен.
Заранее спасибо.
Название: Re:Многоуровневое меню с использованием USEL
Отправлено: thecoder от 10 Октября 2011, 11:32:02
ээээээ.......а зачем в меню использовать usel?

1. Посуда - это раздел каталога

1.1 Чашки - это подраздел раздела Посуда
1.2 Тарелки - это подраздел раздела Посуда

Используй categoryList

Для примера используй демо Интернет-магазин на xslt. Там слева как раз выводится такое меню.
Название: Re:Многоуровневое меню с использованием USEL
Отправлено: disallow от 10 Октября 2011, 12:49:22
Можно и так поступить - А если допустим в Разделе Посуда уже будут объекты каталога. А в разделе Столовые приборы - категории?
Название: Re:Многоуровневое меню с использованием USEL
Отправлено: thecoder от 10 Октября 2011, 13:03:12
Не совсем понял вопроса. Если уже в каталоге есть объекты, то просто перетащите их в нужные категории.
Название: Re:Многоуровневое меню с использованием USEL
Отправлено: disallow от 10 Октября 2011, 14:02:24
Разобрался, спасибо.