Меню для иформационной системы

#
Меню для иформационной системы
Доброго времени суток!

Извиняюсь если такая тема уже была, но поиск по сайту в данный момент не работает(

На данный момент имеется ИС следующего вида:

-группа
-группа
--подгруппа
--подгруппа
-группа
--подгруппа

Можно ли сделать такое же меню, но с условием, что если подгруппе или в группе вцелом нет активных элементов (закончился срок публикации) то эти группы/подгруппы не показывались в меню?

думаю это делается правкой xsl шаблона, так?
#
Re: Меню для иформационной системы
ruslanbakiev, перед отображением ссылки на группу необходимо добавить проверку на содержимое тэга count_all_items:
<!-- Шаблон выводит ссылки подгруппы информационного элемента -->
<xsl:template match="group" mode="groups">
<xsl:if test="count_all_items &gt; 0">
...
</xsl:if>
</xsl:template>
#
Re: Меню для иформационной системы
Спасибо! Наталья вы как всегда молодец!

Теперь как сделать так чтобы меню всегда было активно и было вида

-группа
-группа
--подгруппа
--подгруппа
-группа
--подгруппа

то есть если мы находимся в подгруппе группы бы не исчезали?
#
Re: Меню для иформационной системы
Используйте в XSL-шаблоне тэмплейт для отображения списка групп:
<!-- Шаблон для групп товара -->
<xsl:template match="group">
<xsl:if test="count_all_items &gt; 0">
<li>
<a ref="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
    <ul>
     <xsl:apply-templates select="group"/>
    </ul>
</li>
</xsl:if>      
</xsl:template>

При вызове метода ShowInformationSystem в качестве параметра $information_groups_id следует передавать false.

#
Re: Меню для иформационной системы
не совсем понял

При вызове метода ShowInformationSystem в качестве параметра $information_groups_id следует передавать false.


где его передавать?

и правильно ли вы поняли задачу?

нужно чтобы в шаблоне ИС  всегда отображались все группы или подгруппы, вне зависимости от страницы где мы находились
#
Re: Меню для иформационной системы
ruslanbakiev, но вы же каким-то образом вызываете этот XSL-шаблон, который выводит группы. Очевидно, используете при этом метод ShowInformationSystem(в макете или шаблоне страницы). Вот ему и передавайте false в качестве значения текущей группы.
#
Re: Меню для иформационной системы
я вызываю ИС через типовые динамические страницы - раздел сайта
в этом разделе сайта нужно чтобы на каждой странице было меню с разделами информационной системы
#
Re: Меню для иформационной системы
нашел подобное - разбираюсь http://www.hostcms.ru/forums/17/223/
#
Re: Меню для иформационной системы
все заработало - теперь вопрос как сделать следующее:

выводить список подгрупп только если мы находимся на родительской группе или на соседних подгруппах?

пометить тегом <b></b> раздел, в котором мы сейчас находимся

есть подобное для меню решение - но я его привязать не смог
#
Re: Меню для иформационной системы
ruslanbakiev, для реализации используйте код:
<!-- Шаблон для групп товара -->
<xsl:template match="group">
<xsl:variable name="current_group_id" select="/document/ТекущаяГруппа"/>
<xsl:if test="count_all_items &gt; 0">
<li>
<xsl:choose>  
<xsl:when test="$current_group_id = @id or count(.//group[@id=$current_group_id])=1">
<b><a ref="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a></b>
            <br/>
            <ul>
                  <xsl:apply-templates select="group"/>
            </ul>
</xsl:when>
<xsl:otherwise>
<a ref="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</xsl:otherwise>
</xsl:choose>
</li>
</xsl:if>      
</xsl:template>

Передать значение тэга ТекущаяГруппа можно при показе инфосистемы след. образом:
$external_propertys['ТекущаяГруппа'] = to_int($GLOBALS['INFSYS_result']['group']);
Авторизация