Разработка сайта на UMI.CMS > Шаблоны XSLT

Меню из подстаниц на XSLT

<< < (5/5)

grave:

--- Цитата: admin от 10 Августа 2011, 13:34:34 ---о боже, мой ответ потерся!!!! а я то думал что все заработало и не заглядывал в эту тему(

--- Конец цитаты ---
ну дык продублируй )

PHOENIX-75:

--- Цитата: grave от 10 Августа 2011, 21:20:40 ---
--- Цитата: admin от 10 Августа 2011, 13:34:34 ---о боже, мой ответ потерся!!!! а я то думал что все заработало и не заглядывал в эту тему(

--- Конец цитаты ---
ну дык продублируй )

--- Конец цитаты ---

Ну в общем-то можно ничего и не дублировать, хотя если будет ещё одно решение, то только плюсом в копилку как и что можно обыграть.
А вообще как вариант можно сделать вот что. Придумал работая над очередным сайтом. В системе в версии Start для реализации каталога или чего-то другого что требует реализации вложенных категорий можно использовать модуль "Новости". Создать в шаблоне данных новый тип данных (вернее подтип для "Лента новостей"), и для этого подтипа прописать свои шаблоны. И как говориться в путь. Можно в итоге вывести и меню для необходимого раздела, и организовать постраничную разбивку и.т.д.
В общем всё реализуется без проблем.

pro2type.ru:
Решение проблемы с Подменю...
Просто необходимо сделать проверку, если мы находимся в  Папке, то выводим подразделы, а если находимся в самом подразделе, то выводим все подразделы папки нашего подраздела в котором находимся.
Вот и все...

Папка
- Подраздел 1
- Подраздел 2
Папка 2
- Подраздел 1
- Подраздел 2

Это вставляем где надо выводить подменю:

--- Код: ---
<!-- Дополнительное меню -->
<xsl:for-each select="/result">
<xsl:choose>
<xsl:when test="/result/page/@parentId='0'">
<xsl:apply-templates select="document(concat('udata://content/menu/0/1/',/result/@pageId))/udata" mode="menu"/>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="document(concat('udata://content/menu/0/1/',/result/page/@parentId))/udata" mode="menu"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
<!-- #Конец доп. меню -->
--- Конец кода ---

И сам шаблон подменю:

--- Код: ---
<!-- Menu -->
<xsl:template match="udata[@module = 'content'][@method = 'menu']" mode="menu">
<ul umi:add-method="popup"
umi:sortable="sortable"
umi:method="menu"
umi:module="content"
umi:element-id="{../@id}">
<xsl:apply-templates select="items/item" mode="menu"/>
</ul>
</xsl:template>
<xsl:template match="item" mode="menu">
<li>
— <a href="{@link}" class="left" umi:element-id="{@id}" umi:region="row" umi:field-name="name" umi:empty="&empty-section-name;" umi:delete="delete">
<xsl:value-of select="@name" />
</a>
</li>
</xsl:template>
<xsl:template match="item[@status = 'active']" mode="menu">
<li class="active">
— <a href="{@link}" class="left">
<xsl:value-of select="@name"/>
</a>
</li>
</xsl:template>
<!-- #Menu -->
--- Конец кода ---

Внимание! В приведенном шаблоне подключен Edit-in-Place. Будьте внимательны!

Axiomateria:

--- Цитата: pro2type.ru от 01 Декабря 2011, 14:11:30 ---Решение проблемы с Подменю...
Просто необходимо сделать проверку, если мы находимся в  Папке, то выводим подразделы, а если находимся в самом подразделе, то выводим все подразделы папки нашего подраздела в котором находимся.

--- Конец цитаты ---

Попробовал вставить в объект каталога и не работает...
Вы эти шаблоны создали для простой информационной страницы (тип данных "Страница контента") ?

BaceH:

--- Цитировать ---@module = 'content'][@method = 'menu'
--- Конец цитаты ---
- да
для каталога используйте http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/katalog/catalog_getcategorylist/#xslt-templating - catalog getCategoryList()

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Перейти к полной версии