группы инфосистемы в меню

#
группы инфосистемы в меню
выдаю меню шаблоном

<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>

   <xsl:template match="/document">

         <!-- Выбираем узлы структуры -->
         <xsl:apply-templates select="structure[show=1]"/>
      
   </xsl:template>

   <xsl:template match="structure">

      <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
      <xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
   

            <!-- Расчитываем размер отступа -->
            <xsl:variable name="lev" select="level"/>
            
               <!-- Показывать ссылку, или нет -->
               <xsl:if test="show_link=1">

                  <!-- Определяем адрес ссылки -->
                  <xsl:variable name="link">
                     <xsl:choose>
                        <!-- Если внешняя ссылка -->
                        <xsl:when test="is_external_link=1">
                           <xsl:value-of disable-output-escaping="yes" select="external_link"/>
                        </xsl:when>
                        <!-- Иначе если внутренняя ссылка -->
                        <xsl:otherwise>
                           <xsl:value-of disable-output-escaping="yes" select="link"/>
                        </xsl:otherwise>
                     </xsl:choose>
                  </xsl:variable>

                  <!-- Определяем стиль вывода ссылки -->
                  <xsl:variable name="link_style">
                     <xsl:choose>
                        <!-- Выделяем текущую страницу жирным (если это текущая страница, либо у нее есть ребенок с ID, равным текущей) -->
                        <xsl:when test="current_structure_id=@id or count(.//structure[@id=$current_structure_id])=1">font-weight: bold</xsl:when>
                        <!-- Иначе обычный вывод с пустым стилем -->
                        <xsl:otherwise></xsl:otherwise>
                     </xsl:choose>
                  </xsl:variable>

                  <a href="{$link}" class="lev{$lev}" style="{$link_style}">                     
                        <xsl:value-of disable-output-escaping="yes" select="name"/>                     
                  </a>
               </xsl:if>

               <!-- Если не показывать ссылку - выводим просто имя ссылки -->
               <xsl:if test="show_link=0">
                  <xsl:value-of disable-output-escaping="yes" select="name"/>
               </xsl:if>

<xsl:if test="count(structure[show = 1]) &gt; 0">      
         
   <xsl:apply-templates select="structure[show=1]"/>               
</xsl:if>
            
   </xsl:template>
</xsl:stylesheet>


вызываю в макете так

$Structure = & singleton('Structure');

$Structure->ShowStructure(1,'left_menu_motorr');


получаю такое меню
Информация
  Новости
  Статьи
  Доска
...
всё хорошо но хотелось что бы показывало подгруппы ис

тогда вызываю так (чтобы показывало подгруппы и.с.):

$Structure = & singleton('Structure');
$param = array();
$param['show_groups']=true;
$param['show_items']=false;
$Structure->ShowStructure(1,'left_menu_motorr',$param);


получаю такое меню
Информация
  Новости
Фильмы
  Статьи
Hi-Tech
Софт
  Доска
...

как сделать так, что бы группы ис тоже имели отступ и при выборе тоже выделялись жирным
#
Re: группы инфосистемы в меню
Drew2, по поводу отступа: его, видимо, добавляют ваши классы lev{$lev}. Попробуйте вызов тэмплейта  <xsl:apply-templates select="structure[show=1]"/> добавить также внутрь блока с классом lev{$lev}.
Drew2 писал(а):
как сделать так, что бы группы ис тоже имели отступ и при выборе тоже выделялись жирным
- см. пример реализации http://www.hostcms.ru/forums/17/961/
#
Re: группы инфосистемы в меню
Вопрос такой: а как сделать, чтобы в XML, сгенерированный ShowStructure, выдавались еще доп. свойства групп инфосистемы? Я так понял, что что-то надо передать в 4-ом параметре ($external_propertys), но что именно? Просто имя тега или номер свойства или что-то еще?

#
Re: группы инфосистемы в меню
noname, каким-либо образом получить в XML-е информацию о доп. свойствах групп инфосистем нельзя. С какой целью вам это требуется(возможно, поставленную задачу можно решить другим способом)?
#
Re: группы инфосистемы в меню
Нужно мне это вот для чего: у меня есть двухуровневое меню, верхним уровнем которого являются инфосистемы (и несколько статических страниц), а нижним -- группы этих самых инфосистем. Согласно дизайну, в меню рядом с каждым пунктом (и первого и второго уровня) есть небольшая картинка. Для верхнего уровня я задал  URL этих картинок в доп. свойствах элементов структуры сайта и все работает, а для групп -- хотел в доп. свойствах групп, но столкнулся с описанной проблемой.
#
Re: группы инфосистемы в меню
В общем, вопрос почти решил: преобразовал все в одну большую инфосистему, и картинку задаю в стандартных свойствах инфосистемы.
#
Re: группы инфосистемы в меню
Здравствуйте!
Не могу решить похожую задачку...
Нужно вывести в левом меню подразделы инфосистемы "Каталог". Реализовано должно быть как левое меню "Интернет-магазина"... Все перепробывала... ничего не получается...

Можете помочь??
#
Re: группы инфосистемы в меню
Похожая проблема. Вывожу в структуру группы информационной системы. Как сделать что бы выводились не все группы, а только те, у которых я поставил флажек в дополнительных свойствах.

p.s. не отправляйте искать на форуме и читать документацию, уже все перекопал, у многих такая проблема, но нигде нет решения
Модератор
#
Re: группы инфосистемы в меню
s-h-e-f-f,
никак, это вывод структуры и он ничего не знает о доп. св-вах ИС и магазина.
Авторизация