Группы и подгруппы инфосистемы (как меню)

Модератор
#
Re: Группы и подгруппы инфосистемы (как меню)
Примерно так, только вот у Вас в XML нет ТекущаяГруппа, поэтому как минимум подгруппы не выводятся:
<?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="/">
      <xsl:apply-templates select="document/blocks"/>
   </xsl:template>

   <!-- Шаблон -->
   <xsl:template match="document/blocks">
      <xsl:variable name="parent_group_id" select="@current_group_id"/>
      <!-- Выводим группы  -->
      <ul>
         <xsl:apply-templates select="//group[@parent_id=0]"/>
      </ul>
   </xsl:template>
   <!-- Шаблон для групп  -->
   <xsl:template match="group">
      <xsl:variable name="current_group_id" select="/ТекущаяГруппа"/>
      <li>
         <xsl:choose>
            <xsl:when test="$current_group_id = @id or count(.//group[@id=$current_group_id])=1">
               <a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
               <xsl:if test="count_all_groups > 0">
                  <ul>
                     <xsl:apply-templates select="group"/>
                  </ul>
               </xsl:if>
            </xsl:when>
            <xsl:otherwise>
               <a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
            </xsl:otherwise>
         </xsl:choose>
      </li>
   </xsl:template>
</xsl:stylesheet>
#
Re: Группы и подгруппы инфосистемы (как меню)
Да вы правы а как сделать чтоб при нахождении в группе в меню подсвечивалось и выводились подруппы.
Модератор
#
Re: Группы и подгруппы инфосистемы (как меню)
TDE,
Так передайте для начала "ТекущаяГруппа" и посмотрите на результат.
#
Re: Группы и подгруппы инфосистемы (как меню)
Для тех кто в танке (для меня).Чуть подтуплеваю «ТекущаяГруппа» что за значение откуда взять его.Не пинайте плиззз
Модератор
#
Re: Группы и подгруппы инфосистемы (как меню)
в приведенном Вами примере были неточности, жирным выделено исправление:
<?php
  $InformationSystem = & singleton('InformationSystem');
  $InformationSystemId = 48;
   $rez = array();
   $rez = $InformationSystem->GetItemPath($InformationSystemId);
   $external_propertys = array();
   $external_propertys['ТекущаяГруппа'] = $rez['group'];
   $param = array('current_group_id' => 0, 'items_on_page' => 10);
   $param['xml_show_group_type'] = 'all';
   $xsl_catalog = 'МЕНЮ234';
   $InformationSystem->ShowInformationSystem($InformationSystemId, false, $xsl_catalog, 10, 0, external_propertys, $param);
?>
#
Re: Группы и подгруппы инфосистемы (как меню)
Поправил вот так.

<?php
  $InformationSystem = & singleton('InformationSystem');
  $InformationSystemId = 48;
   $rez = array();
   $rez = $InformationSystem->GetInformationFromPath($InformationSystemId);
   $external_propertys = array();
   $external_propertys['ТекущаяГруппа'] = $rez['group'];
   $param = array('current_group_id' => 0, 'items_on_page' => 10);
   $param['xml_show_group_type'] = 'all';
   $xsl_catalog = 'МЕНЮ2345';
   $InformationSystem->ShowInformationSystem($InformationSystemId, false, $xsl_catalog, 10, 0, external_propertys, $param);
?>


Выводит группы при заходе в группу не подсвечивает и подгруппы не отображаються.
Чтото не получается.

Достал Вас По теории русского языка надо говорить вынул.
Модератор
#
Re: Группы и подгруппы инфосистемы (как меню)
TDE,
Может доступ пришлете, а то так мы долго будет играть в "угадай где ошибка".
#
Re: Группы и подгруппы инфосистемы (как меню)
Выслал.
Модератор
#
Re: Группы и подгруппы инфосистемы (как меню)
Код вызова:

<?php
$InformationSystem = & singleton('InformationSystem');
$InformationSystemId = 48;
$rez = array();
$rez = $InformationSystem->GetInformationFromPath($InformationSystemId);
$external_propertys = array();
$external_propertys['ТекущаяГруппа'] = $rez['group'];
$param = array('current_group_id' => 0, 'items_on_page' => 10);
$param['xml_show_group_type'] = 'all';
$xsl_catalog = 'МЕНЮПН';
$InformationSystem->ShowInformationSystem($InformationSystemId, false, $xsl_catalog, 10, 0,$external_propertys, $param);
?>


XSL-шаблон:
<?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="/">
      <xsl:apply-templates select="document/blocks"/>
   </xsl:template>
   
   <!-- Шаблон -->
   <xsl:template match="document/blocks">
      <xsl:variable name="parent_group_id" select="@current_group_id"/>
      <!-- Выводим группы  -->
      <div>
         <xsl:apply-templates select="//group[@parent_id=0]"/>
      </div>
   </xsl:template>
   <!-- Шаблон для групп  -->
   <xsl:template match="group">
      <xsl:variable name="current_group_id" select="/document/ТекущаяГруппа"/>
      <div>
         <xsl:choose>
            <xsl:when test="$current_group_id = @id or count(.//group[@id=$current_group_id])=1">
               
               <!-- Жирным выделим текущий пункт -->
               <xsl:choose>
                  <xsl:when test="$current_group_id = @id">
                  <b><a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a></b>
                  </xsl:when>
                  <xsl:otherwise>
                     <a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
                  </xsl:otherwise>
               </xsl:choose>

               
               <xsl:if test="count_all_groups > 0">
                  <ul>
                     <xsl:apply-templates select="group"/>
                  </ul>
               </xsl:if>
            </xsl:when>
            <xsl:otherwise>
               <a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
            </xsl:otherwise>
         </xsl:choose>
      </div>
   </xsl:template>
</xsl:stylesheet>

Жирным выделены внесенные изменения.
#
Re: Группы и подгруппы инфосистемы (как меню)
Спасибо за помощь.С наступающим всех сотрудников.Успехов в вашем нелегком деле,всех благ,бабла немерено,всем по новому мерену.По котеджу на рублевке и на рыбалке поклевки.
Авторизация