Выделение текущего элемента инфосистемы в списке элементов инфосистемы

#
Выделение текущего элемента инфосистемы в списке элементов инфосистемы
Здравия всем!

Имеется список элементов инфосистемы.
Подскажите, пожалуйста, как добавить класс ( class="current" ) к текущему элементу в списке?

Список выводится так:

if (Core::moduleIsActive('informationsystem'))
{
   $Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
      Core_Entity::factory('Informationsystem', 23)
   );

   $Informationsystem_Controller_Show
      ->xsl(
         Core_Entity::factory('Xsl')->getByName('СписокЭлементовИнфосистемыСайдбар')
      )
      ->groupsMode('none')
      ->itemsForbiddenTags(array('text'))
      ->group(FALSE)
      ->show();
}


XSL для списка:

<xsl:template match="/">
   <xsl:apply-templates select="/informationsystem"/>
</xsl:template>
   
<xsl:template match="/informationsystem">
   
   <li hostcms:id="{@id}" hostcms:field="name" hostcms:entity="informationsystem">
      <span><xsl:value-of disable-output-escaping="yes" select="name"/></span>
      <!-- Отображение записи информационной системы -->
      <ul>
         <xsl:apply-templates select="informationsystem_item"/>
      </ul>
   </li>

</xsl:template>

<!-- Шаблон вывода информационного элемента -->
<xsl:template match="informationsystem_item">
   <li>
      <a href="{url}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="informationsystem_item">
         <xsl:value-of disable-output-escaping="yes" select="name"/>
      </a>
   </li>
</xsl:template>


Нужно к элементу <li> добавить класс, как это делается в XSL для меню:

<xsl:if test="$current_structure_id = @id or count(.//structure[@id=$current_structure_id]) = 1">
   <xsl:attribute name="class">current</xsl:attribute>
</xsl:if>
Модератор
#
Re: Выделение текущего элемента инфосистемы в списке элементов инфосистемы
судя по всему у Вас отдельный показ ИС, соответственно какие-либо данные о текущем элементе в этот блок вообще не передаются. Чтобы передать их, см. http://www.hostcms.ru/documentation/modules/core/controllers/

Передача контроллеру структуры идентификатора текущего инфоэлемента и группы
переделаем его для $Informationsystem_Controller_Show:
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('informationsystem_group_id')
          ->value(intval(Core_Page::instance()->object->group))
    )->addEntity(
       Core::factory('Core_Xml_Entity')
          ->name('informationsystem_item_id')
          ->value(intval(Core_Page::instance()->object->item))
    );
}
#
Re: Выделение текущего элемента инфосистемы в списке элементов инфосистемы
Благодарю за помощь.
Привожу работающий код.

Вывод списка элементов инфосистемы + определение id текущего инфоэлемента:

if (Core::moduleIsActive('informationsystem'))
{
   $Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
      Core_Entity::factory('Informationsystem', 23)
   );
   
   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('informationsystem_group_id')
             ->value(intval(Core_Page::instance()->object->group))
       )->addEntity(
          Core::factory('Core_Xml_Entity')
             ->name('informationsystem_item_id')
             ->value(intval(Core_Page::instance()->object->item))
       );
   }


   $Informationsystem_Controller_Show
      ->xsl(
         Core_Entity::factory('Xsl')->getByName('СписокЭлементовИнфосистемыСайдбар')
      )
      ->groupsMode('none')
      ->itemsForbiddenTags(array('text'))
      ->group(FALSE)
      ->show();
}



Добавление в XML class="current" для текущего элемента:

<xsl:variable name="informationsystem_item_id" select="/informationsystem/informationsystem_item_id"/>

<xsl:template match="/">
   <xsl:apply-templates select="/informationsystem"/>
</xsl:template>
   
<xsl:template match="/informationsystem">
   
   <li hostcms:id="{@id}" hostcms:field="name" hostcms:entity="informationsystem">
      <span><xsl:value-of disable-output-escaping="yes" select="name"/></span>
      <!-- Отображение записи информационной системы -->
      <ul>
         <xsl:apply-templates select="informationsystem_item"/>
      </ul>
   </li>

</xsl:template>

<!-- Шаблон вывода информационного элемента -->
<xsl:template match="informationsystem_item">
   <li>
   
      <xsl:if test="$informationsystem_item_id = @id">
         <xsl:attribute name="class">current</xsl:attribute>
      </xsl:if>

   
      <a href="{url}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="informationsystem_item">
         <xsl:value-of disable-output-escaping="yes" select="name"/>
      </a>
   </li>
</xsl:template>

Авторизация