UMIhelp
Разработка сайта на UMI.CMS => Макросы UMI.CMS => Тема начата: creation.vis от 16 Февраля 2012, 10:20:46
-
Здравствуйте, столкнулся со следующей проблемой, в шаблоне обработки запросов XSLT прописываю следующий код:
<xsl:template match="udata" mode="menu-usel-1">
<ul>
<xsl:apply-templates select="page" mode="menu-usel-1"/>
</ul>
</xsl:template>
<xsl:template match="page" mode="menu-usel-1">
<li>
<a href="{@link}">
<xsl:value-of select="name" />
</a>
</li>
</xsl:template>
<xsl:template match="page[@is-active='1']" mode="menu-usel-1">
<li>
<a href="{@link}">
<xsl:value-of select="name" />
</a>
</li>
</xsl:template>
В итоге все страницы выбранные по заданным параметрам из базы данных по протоколу USel отображаются как активные (@is-active='1'). Насколько понял именно этот атрибут тега page отвечает за текущую страницу.
-
у вас два одинаковых шаблона
добавте
<xsl:template match="page[@is-active='1']" mode="menu-usel-1">
<li>
<a href="{@link}" class="active">
<xsl:value-of select="name" />
</a>
</li>
</xsl:template>
стили пропишите для class="active"
или же
<xsl:template match="page[@is-active='1']" mode="menu-usel-1">
<li>
<xsl:value-of select="name" />
</li>
</xsl:template>
убрать ссылку из активного меню
-
Sorry, опечатка вышла.
Дело в том что шаблон для активного и неактивных пунктов меню изначально отличался по параметру class="active" стили для которого были прописаны. При таком условии, все страницы выбранные по заданным параметрам из базы данных по протоколу USel отображаются как активные (@is-active='1'). Попытка прописать @is-active='0' для неактивных страниц также ничего не дает.
Выборки по протоколу udata/content /menu по заданной методике проходят на ура, ну что то вроде:
<xsl:template match="item" mode="menu">
<li>
<a href="{@link}">
<xsl:value-of select="@name"/>
</a>
</li>
</xsl:template>
<xsl:template match="item[@status = 'active']" mode="menu">
<li>
<a href="{@link}" class="active">
<xsl:value-of select="@name"/>
</a>
</li>
</xsl:template>
а вот с USel никак.
-
покажите USel и шаблоны обработки
-
@is-active - по моему, есть только в xml, который возвращает макрос вывода меню, но не usel запрос, он вроде как никогда не проверял является ли какая-нибудь страница текущей(активной)