Здравствуйте, столкнулся с ошибкой вывода меню.
Осуществляю вывод меню на страницах информационных систем
<!-- Левое меню -->
<?php
// Верхнее меню
$Structure_Controller_Show = new Structure_Controller_Show(
Core_Entity::factory('Site', CURRENT_SITE));
$Structure_Controller_Show->xsl(
Core_Entity::factory('Xsl')->getByName('ЛевоеМеню')
)
// Показывать группы информационных систем в карте сайта
->showInformationsystemGroups(TRUE)
->showInformationsystemItems(FALSE)
->menu('3');
if (is_object(Core_Page::instance()->object)
&& get_class(Core_Page::instance()->object) == 'My_Informationsystem_Controller_Show'){
$Structure_Controller_Show->addEntity(
Core::factory('Core_Xml_Entity')
->name('informationsystem_group_id')
->value(intval(Core_Page::instance()->object->group))
);
}
$Structure_Controller_Show->show();
?>
Вывод этого меню делаю в основном макете на всех страницах сайта.
В двух совершенно одинаково настроенных информационных системах, вывод ведет себя по-разному, в одной выдает ошибку.

Ссылается ошибка на выделение текущего пункта меню
<!-- Определяем стиль вывода элемента в меню -->
<xsl:if test="$current_structure_id=@id or /site/informationsystem_group_id = @id or count(.//structure[@id=$current_structure_id])=1 or count(.//informationsystem_group[@id=/site/informationsystem_group_id])=1">
<xsl:attribute name="class">current</xsl:attribute>
</xsl:if>
если этот код удалить, то все выводится корректно.
Возникает вопрос, как исправить проблему, так как выделение пункта меню все таки необходимо. Странно именно то что ошибка возникает при выводе одной ИС и отсутствует в выводе другой.