Вопросы по структуре меню

#
Вопросы по структуре меню
Всем добра!
Уважаемые, возник такой казус - на сайте есть раздел, где перечислены товары (условно).
Структура вида:
- раздел с товарами
   - товар 1
      - 1 свойство товара
      - 2 свойство товара
      - 3 свойство товара
   - товар 2
      - 1 свойство товара
   - товар 3
      - 1 свойство товара

Мне необходимо организовать меню, причем с выделением текущего пункта. Меню я вывел, не проблема. Выделение текущего пункта - работает на 50%, а именно - если я нахожусь в узле (товар1, url вида site.ru/tovar/), то оно работает, если я иду на его деток(т.е., 1 свойство товара, которое имеет url вида site.ru/tovar/sv1), то не работает ))

В макете меню вызываю так:

<div class="bottomblockcontent">
      <?php
      // меню
      $Structure_Controller_Show = new Structure_Controller_Show(
         Core_Entity::factory('Site', CURRENT_SITE));

      $Structure_Controller_Show->xsl(Core_Entity::factory('Xsl')
            ->getByName('боттомменю'))
         ->menu('4')
         ->parentId(90)
         ->show();
      ?>
</div>


Соответственно, parentId=90 - это раздел с товарами, menu=4 это нужный ID менюшки.

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="/site">
      <xsl:if test="count(structure[show=1]) > 0">
         <!-- Если вывод подменю -->
         <xsl:if test="parent_id != 0">
            <hr />
         </xsl:if>
         
         <ul class="carnav">
            <xsl:apply-templates select="structure[show=1]"/>
         </ul>
      </xsl:if>
   </xsl:template>
   
   <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
   <xsl:variable name="current_structure_id" select="/site/current_structure_id"/>

   
   <xsl:template match="structure">
      <li style="width: 119px !important; visibility: visible;">
         <!--
         Выделяем текущую страницу добавлением к li класса current,
         если это текущая страница, либо у нее есть ребенок с атрибутом id, равным текущей группе.
         -->
         <xsl:if test="$current_structure_id = @id">
            <xsl:attribute name="class">active</xsl:attribute>
         </xsl:if>


         <!-- Определяем адрес ссылки -->
         <xsl:variable name="link">
            <xsl:choose>
               <!-- Если внешняя ссылка -->
               <xsl:when test="url != ''">
                  <xsl:value-of disable-output-escaping="yes" select="url"/>
               </xsl:when>
               <!-- Иначе если внутренняя ссылка -->
               <xsl:otherwise>
                  <xsl:value-of disable-output-escaping="yes" select="link"/>
               </xsl:otherwise>
            </xsl:choose>
         </xsl:variable>
         
         <!-- Ссылка на пункт меню -->
         <a href="{$link}" title="{name}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="structure"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
      </li>
   </xsl:template>
</xsl:stylesheet>


Смотрел на форуме, по дефолту должно было стоять так:

         <xsl:if test="$current_structure_id = @id or count(.//structure[@id=$current_structure_id]) = 1">
            <xsl:attribute name="class">current</xsl:attribute>
         </xsl:if>

Но это работает в обратную сторону, т.е., если я нахожусь в родительском для $current_structure_id разделе.
Смотрел XML, который отдает страница на разных узлах, пришел к разочарованию Почему-то везде в качестве parent_id отдается id самого большого родителя, в моем случае = 90 = раздел с товарами.

Вопрос - как получить id раздула, в дочернем разделе которого мы находимся? иначе - как находясь по url вида site.ru/tovar/sv1 получить ID раздела tovar/ ? И как после этого организовать средствами XSL проверку на совпадение?
Заранее спасибо )
  
Авторизация