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

Модератор
#
Re: Группы и подгруппы инфосистемы (как меню)
TDE,
Спасибо. С наступающим.
#
Re: Группы и подгруппы инфосистемы (как меню)
С наступившим Вас.
Есть вопрос на счет этой реализации меню. Сделал все как написано, но у меня получается, что путь до группы неправильный. Должен быть такой: http://stomatol/stomatology/15/ , а получается вот такой http://stomatol/15/. Тоесть получается, что в информационной системе "Стоматология", есть информационные группы "Первый осмотр", "Лечение зубов" и тд. В меню они выводятся, а вот путь получается до них неправильный. Подскажите, что нужно исправить в коде.
Модератор
#
Re: Группы и подгруппы инфосистемы (как меню)
Jura_22,
Отредактировать информационную систему и указать из выпадающего списка правильный узел структуры.
#
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);
?>


Как понимаю в 4 версии ( & singleton ) не возможен.
а как же для 4 версии так сделать.
Ругается системка на & singleton .
Модератор
#
Re: Группы и подгруппы инфосистемы (как меню)
$InformationSystem = new InformationSystem();
#
Re: Группы и подгруппы инфосистемы (как меню)
Да да .Спасибо сам понял глянув в исходники.
#
Re: Группы и подгруппы инфосистемы (как меню)
Спасибо, с приведенным здесь кодом получилось сделать группы как меню информационной системы. А как сделать, если только в текущей группе нужно вывести еще и ссылки на входящие в нее элементы? Т.е. чтобы выводился только список названий элементов, относящихся к текущей группе, прямо в меню. Поскольку элементов будет совсем мало - не надо ни деления на страницы, ни архивов, что так сбивает с толку в общем шаблоне информационной системы... Надо вывести только заголовки со ссылками, и все.
http://superweb.pro/ — сайты на HostCMS под ключ
#
Re: Группы и подгруппы инфосистемы (как меню)
Вот код, который не работает:

<?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"/>
      <!-- Выводим группы  -->
      <table width="360" border="0" cellspacing="0" cellpadding="0">
         <tr>
            <td valign="top"><img src="/img/markLeftAll.gif" width="42" height="42" /></td>
         <td colspan="2" valign="top"><h2>Вакансии по городам:</h2></td>
         </tr>
         <xsl:apply-templates select="//group[@parent_id=0]"/>
         <tr>
            <td valign="top">&#160;</td>
            <td>&#160;</td>
            <td>&#160;</td>
         </tr>
         <tr>
            <td height="36" colspan="3" valign="top"><img src="/img/1.gif" width="36" height="36" /></td>
         </tr>
         <tr>
            <td width="42" height="1"><img src="/img/1.gif" width="42" height="1" /></td>
            <td width="19"><img src="/img/1.gif" width="19" height="1" /></td>
            <td width="299"><img src="/img/1.gif" width="299" height="1" /></td>
         </tr>
      </table>
   </xsl:template>
   <!-- Шаблон для групп  -->
   <xsl:template match="group">
      <xsl:variable name="current_group_id" select="/document/ТекущаяГруппа"/>
         <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">
                     <tr>
                        <td valign="top">&#160;</td>
                        <td><img src="/img/markOpenCat.gif" alt="" width="19" height="8" vspace="5" /></td>
                     <td class="mLeft"><a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a></td>
                     </tr>
                     <tr>
                        <td valign="top">&#160;</td>
                        <td>&#160;</td>
                        <td>(вакансий: <xsl:value-of select="count_all_items"/>)</td>
                     </tr>
                     <tr>
                        <td valign="top" colspan="3">&#160;</td>
                     </tr>
                            <xsl:if test="count_all_items > 0">
                            <!-- Отображение записи информационной системы -->
                                <xsl:apply-templates select="blocks/items/item[item_status=1]"/>
                            </xsl:if>
                  </xsl:when>
                  <xsl:otherwise>
                     <tr>
                        <td valign="top">&#160;</td>
                        <td><img src="/img/about.gif" alt="" width="19" height="10" vspace="5" /></td>
                     <td class="mLeft"><a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a></td>
                     </tr>
                     <tr>
                        <td valign="top">&#160;</td>
                        <td>&#160;</td>
                        <td>(вакансий: <xsl:value-of select="count_all_items"/>)</td>
                     </tr>
                     <tr>
                        <td valign="top" colspan="3">&#160;</td>
                     </tr>
                  </xsl:otherwise>
               </xsl:choose>
               
               <xsl:if test="count_all_groups > 0">
                  <xsl:apply-templates select="group"/>
               </xsl:if>
            </xsl:when>
            <xsl:otherwise>
               <tr>
                  <td valign="top">&#160;</td>
                  <td><img src="/img/about.gif" alt="" width="19" height="10" vspace="5" /></td>
               <td class="mLeft"><a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a></td>
               </tr>
               <tr>
                  <td valign="top">&#160;</td>
                  <td>&#160;</td>
                  <td>(вакансий: <xsl:value-of select="count_all_items"/>)</td>
               </tr>
               <tr>
                  <td valign="top" colspan="3">&#160;</td>
               </tr>
            </xsl:otherwise>
         </xsl:choose>
   </xsl:template>
   <xsl:template match="blocks/items/item">
         <!-- Название -->
            <tr>
                  <td valign="top">&#160;</td>
                  <td valign="top"><img src="/img/markInCat.gif" width="19" height="10" /></td>
                  <td valign="top"><a href="{item_path}" style="color: #000000;"><xsl:value-of disable-output-escaping="yes" select="item_name"/></a></td>
                </tr>
                <tr>
                  <td colspan="3" valign="top">&#160;</td>
                </tr>
   </xsl:template>
</xsl:stylesheet>


Что не так?
http://superweb.pro/ — сайты на HostCMS под ключ
Модератор
#
Re: Группы и подгруппы инфосистемы (как меню)
#
Re: Группы и подгруппы инфосистемы (как меню)
Покопался на форуме, но так и не смог сообразить, как вывести для Левого меню подгруппы (по примеру магазина). Т.е., например, выводим "Статьи" и по onclick выводим группы Статей. Аналогично как в магазине.
Есть вызов левого меню.
<!-- Левое меню -->
      <?php
      $Structure = & singleton('Structure');
$param['show_groups'] = true;
      $Structure->ShowStructure(2, 'ЛевоеМеню', $param);
      ?>

Дописал в него этот параметр. В xml стали выводиться подгруппы.
Теперь понимаю, что надо как-то в xsl шаблоне "ЛевоеМеню" оформить их вывод. Как я понимаю, нужно дописать какое-то условие для проверки наличия групп и их вывода. И дописать как в магазине в ссылку onclick.
Но никак не получается все это нормально оформить - совсем запутался
Авторизация