Здравствуйте! Сильно не пинайте, не знаю где искать и как сделать:
У меня двухуровневое меню. Каталог на основе информационной системы с группами и подгруппами. Когда нахожусь в первом уровне, он активный и второй уровень открывается. Когда захожу во второй уровень, первый уровень становится неактивным и соответственно второй уровень не открыт. Нужно сделать так, чтобы при нахождении на втором уровне он был открытым, т.е. первый уровень оставался активным.
В шаблоне вывожу так:
<? // Меню каталога
$Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
Core_Entity::factory('Informationsystem', 1)
);
$Informationsystem_Controller_Show
->xsl(
Core_Entity::factory('Xsl')->getByName('ГруппыИнфосистемыСлева')
)
->groupsMode('all')
->limit(0);
if (is_object(Core_Page::instance()->object)
&& get_class(Core_Page::instance()->object) == 'Informationsystem_Controller_Show')
{
$Informationsystem_Controller_Show->addEntity(
Core::factory('Core_Xml_Entity')
->name('current_group_id')
->value(intval(Core_Page::instance()->object->group))
);
}
$Informationsystem_Controller_Show->show();
?>
XSL-шаблон:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:hostcms="http://www.hostcms.ru/"
exclude-result-prefixes="hostcms">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<!-- ГруппыИнфосистемыСлева -->
<xsl:template match="/">
<xsl:apply-templates select="/informationsystem"/>
</xsl:template>
<!-- Шаблон для магазина -->
<xsl:template match="/informationsystem">
<ul class="left-menu">
<xsl:apply-templates select="informationsystem_group"/>
</ul>
</xsl:template>
<!-- Шаблон для групп товара -->
<xsl:template match="informationsystem_group">
<li>
<xsl:attribute name="class">
<xsl:if test="informationsystem_group">parent</xsl:if>
<xsl:if test="position() = last()"> last</xsl:if>
</xsl:attribute>
<xsl:variable name="informationsystem_group" select="count(informationsystem_group)" />
<a href="{url}">
<xsl:if test="@id = /informationsystem/current_group_id">
<xsl:attribute name="class">current-group</xsl:attribute>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
<!-- Если есть подгруппы -->
<xsl:if test="informationsystem_group">
<ul>
<xsl:apply-templates select="informationsystem_group" mode="pool"/>
</ul>
</xsl:if>
</li>
</xsl:template>
<!-- Шаблон для групп товара -->
<xsl:template match="informationsystem_group" mode="pool">
<li>
<a href="{url}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="informationsystem_group">
<xsl:if test="@id = /informationsystem/current_group_id">
<xsl:attribute name="class">current-group</xsl:attribute>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="name"/>
</a>
</li>
</xsl:template>
</xsl:stylesheet>
Помогите, пожалуйста, очень надо!..