Меню на основе вывода элементов инфосистемы. Нужно выделить текущий элемент

#
Меню на основе вывода элементов инфосистемы. Нужно выделить текущий элемент
Здравствуйте. Для инфосистемы я организовал меню на основании стандартного XSL шаблона
"СписокЭлементовИнфосистемы" - выводится малое изображение. Когда находимcя в каком-то из элементов инфосистемы нужно, чтобы его малое изображение заменялось большим, чтобы было понятно, где мы находимся. Т.е. выделить текущий элемент.
Вставил в XSL "СписокЭлементовИнфосистемы", в месте вывода изображения, вот такую проверку:
<xsl:choose>
               <xsl:when test="current_item = 1">
                  <img src="{item_image}" class="img" alt="" align="center" />
               </xsl:when>
               <xsl:otherwise><xsl:if test="item_small_image!=''">
                     <img onmouseover="this.src='{item_image}';" onmouseout="this.src='{item_small_image}';" src="{item_small_image}" alt="" width="142" height="163" title="{name}" align="center"/></xsl:if>
               </xsl:otherwise>
            </xsl:choose>


Вывод в макете:
<?php
/* Вывод информационных систем */
$InformationSystem = new InformationSystem();
$external_propertys=array();
$external_propertys['ОтображатьСсылкуНаАрхив']=1;
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=1;
$property = array();
/* Количество выводимых элементов */
$item_count =7;
$InformationSystemId = 40;
$InformationGroupId=false;
$InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'СписокЭлементовИнфосистемы3',$item_count,0,$external_propertys,$property);  
?>


Видно, что-то я упустил. Все работает кроме замены изображения.
Посмотреть можно здесь: fanfare.varshavka42.com/polygraphy/
Может быть кто-то подскажет решение.
iNikSite - дизайн и фронтенд разработка
#
Re: Меню на основе вывода элементов инфосистемы. Нужно выделить текущий элемент
Вместо:
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=1;

используйте:
$external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=1;
$external_propertys['current_item'] = to_int($GLOBALS['INFSYS_result']['item']);


Вместо:
<xsl:when test="current_item = 1">

используйте:
<xsl:when test="/document/current_item = @id">
#
Re: Меню на основе вывода элементов инфосистемы. Нужно выделить текущий элемент
Здравствуйте, Наталья. Огромное вам спасибо. Все работает. Вы, как всегда, выручаете.
Только маленький вопросик возник - если я задаю инфоэлементу имя, например, listovka, то ничего не работает.
Т.е. распознается только цифровой id. А можно, как-то, изменить это условие?  
iNikSite - дизайн и фронтенд разработка
#
Re: Меню на основе вывода элементов инфосистемы. Нужно выделить текущий элемент
iNik, пожалуйста.
iNik писал(а):
А можно, как-то , изменить это условие?
- можно. Если речь о названии элемента, то вместо:
<xsl:when test="/document/current_item = @id">

используйте, например:
<xsl:when test="name = 'listovka'">
#
Re: Меню на основе вывода элементов инфосистемы. Нужно выделить текущий элемент
Наталья, 'listovka' это только одна страница. Динамических страниц более 20 и каждой хотелось бы дать имя, отличное от 001...999
iNikSite - дизайн и фронтенд разработка
#
Re: Меню на основе вывода элементов инфосистемы. Нужно выделить текущий элемент
iNik, можете вместо:
<xsl:when test="name = 'listovka'">

использовать:
<xsl:when test="/document/blocks/items/item[@id = /document/current_item]/name = name">
#
Re: Меню на основе вывода элементов инфосистемы. Нужно выделить текущий элемент
Спасибо, Наталья
iNikSite - дизайн и фронтенд разработка
#
Re: Меню на основе вывода элементов инфосистемы. Нужно выделить текущий элемент
Пожалуйста)
Авторизация