как решить небольшие проблемы?

#
как решить небольшие проблемы?
добрый день,
накопилось небольшое колличество вопросов по работе cms.
а именно:
1.есть ошибка в работе поиска, т.е. при включенной опции искать по всем сайтам, поиск ведется по всем даже по тем, которые отключены и не активны, если конкретнее, то у меня отключен сайт hostcms который стоит по умолчанию, но при поиске он выводится.
2. как сделать вывод новостей, статей или других Информационных систем по заданным ID сайтов?
например:
у меня есть разделы сайта на субдоменах и я хочу выводить на главном домене последние допустим новости с сайтов
ID 2, 4, 5. со ссылками на оригинал, как например это делается при поиске по всем сайтам.
установлена версия start.
спасибо.
#
Re: как решить небольшие проблемы?
2. Смотрите API класса информационные системы и редактируйте соответствующий макет/шаблон
#
Re: как решить небольшие проблемы?
Eklmn,
1. при отключении активности сайта на системе управление изменений в поисковом индексе не происходит. Это не является ошибкой. Реализовать  исключение из результатов поиска элементов, принадлежащих отключенным сайтам вполне возможно(и при необходимости будет реализовано в последующих релизах системы управления).  
2. для вывода инфоэлементов из определенной инфосистемы не обязательно задавать идентификатор того сайта, на котором она расположена. На главном сайте организуйте вывод инфоэлементов нужных инфосистем по идентификаторам этих инфосистем.
#
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/>
</xsl:template>

<xsl:template match="/document">

   <!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
   <xsl:variable name="parent_group_id" select="blocks/parent_group_id" />
   
   <!-- Если в находимся корне - выводим название информационной системы
   <xsl:if test="blocks/parent_group_id=0">
      <span class="style4"><xsl:value-of disable-output-escaping="yes" select="blocks/name" /></span>
      <xsl:value-of disable-output-escaping="yes" select="blocks/description" />
   </xsl:if>
   -->
   <!-- Если в находимся в группе - выводим название группы -->
   <xsl:if test="blocks/parent_group_id!=0">
      <span class="style4"><xsl:value-of disable-output-escaping="yes" select=".//group[@id=$parent_group_id]/name" /></span>

      <!-- Путь к группе -->
      <p  ><xsl:apply-templates select=".//group[@id=$parent_group_id]" mode="goup_path" /></p>
   </xsl:if>
   
   <!-- Отображение подгрупп данной группы -->
   <ul>
      <xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups" />
   </ul>
   
   <!-- Отображение записи информационного блока -->
   <xsl:apply-templates select="blocks/items/item[item_status=1]" />
   
   <p >
   <!-- Строка ссылок на другие страницы информационного блока -->
   <xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1">
      <xsl:call-template name="for">
        <xsl:with-param name="items_on_page" select="blocks/items/items_on_page" />
        <xsl:with-param name="current_page" select="blocks/items/current_page" />
        <xsl:with-param name="count_items" select="blocks/items/count_items" />
      </xsl:call-template>
   </xsl:if>
   </p>
   
   
   <div style="margin-right:10px">
      <table border="0" width="100%" cellpadding="0" cellspacing="0">
      <tr>
      <!-- Ссылка на архив -->
      <xsl:if test="ОтображатьСсылкуНаАрхив=1">
         <td><a href="{blocks/url}">Архив "<xsl:value-of disable-output-escaping="yes" select="blocks/name" />"</a></td>
      </xsl:if>

      </tr>
      </table>
   </div>

</xsl:template>

<!-- ======================================================== -->
<!-- Шаблон выводит рекурсивно ссылки на группы инф. элемента -->
<!-- ======================================================== -->

<xsl:template match="group" mode="goup_path">
   <xsl:variable name="parent_id" select="@parent_id" />

   <xsl:apply-templates select="//group[@id=$parent_id]" mode="goup_path" />

   <xsl:if test="@parent_id=0">
      <a href="{/document/blocks/url}"><xsl:value-of disable-output-escaping="yes" select="/document/blocks/name" /></a>
   </xsl:if>

   -> <a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name" /></a>
</xsl:template>

<!-- ======================================================== -->
<!-- Шаблон выводит ссылки подгруппы информационного элемента -->
<!-- ======================================================== -->
<xsl:template match="group" mode="groups">
   <li>
      <xsl:if test="small_image!=''">
         <a href="{/document/blocks/url}{fullpath}" target="_blank"><img src="/upload/{small_image}" /></a>&#xA0;
      </xsl:if>
      <a href="{/document/blocks/url}{fullpath}"><b><xsl:value-of disable-output-escaping="yes" select="name" /></b></a>&#xA0;<span style="color: #dadada">(<xsl:value-of select="count_all_items" />)</span>
   </li>
</xsl:template>

<!-- ======================== -->
<!-- Данные об инф. элементах -->
<!-- ======================== -->
<xsl:template match="blocks/items/item">

   <div style="margin-right:10px; margin-bottom: 5px;">


      <!-- Дата время -->
      <span class="style1"><xsl:value-of disable-output-escaping="yes" select="item_datetime" /></span>
      <br />
      <!-- Название -->
      <a href="{item_path}" class="style4"><xsl:value-of disable-output-escaping="yes" select="item_name" /></a>
      <br />
      
      <!-- Изображение для информационного элемента (если есть) -->
      <xsl:if test="item_small_image!=''">
         <a href="{item_path}" class="style4"><img src="/{item_small_image}" class="partner_img" alt="" style="margin: 3px 10px 10px 0px" align="left" /></a>
      </xsl:if>
      <span class="style5">
      <xsl:value-of disable-output-escaping="yes" select="item_description" />
      </span>
   </div>
</xsl:template>

<!-- Цикл для вывода строк ссылок -->
<xsl:template name="for">
   <xsl:param name="i" select="0" />
   <xsl:param name="items_on_page" />
   <xsl:param name="current_page" />
   <xsl:param name="count_items" />
   
   <xsl:variable name="n" select="$count_items div $items_on_page" />
   
   <xsl:if test="$count_items > $items_on_page and $n > $i">

      <!-- Разделитель ссылок -->
      <!--
      <xsl:if test="$i != 0 and $n > $current_page"> - </xsl:if>
      -->

      <!-- Ставим ссылку на страницу-->
      <xsl:if test="$i != $current_page">

         <!-- Заносим в переменную $parent_group_id идентификатор текущей группы -->
         <xsl:variable name="parent_group_id" select="/document/blocks/parent_group_id" />

         <!-- Определяем группу для формирования адреса ссылки -->
         <xsl:variable name="group_link"><xsl:choose>
            <!-- Если группа не корневая (!=0) -->
            <xsl:when test="$parent_group_id != 0"><xsl:value-of select="/document/blocks//group[@id = $parent_group_id]/fullpath" /></xsl:when>
            <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
            <xsl:otherwise></xsl:otherwise>
         </xsl:choose></xsl:variable>

         <!-- Определяем адрес ссылки -->
         <xsl:variable name="number_link"><xsl:choose>
            <!-- Если не нулевой уровень -->
            <xsl:when test="$i != 0">page-<xsl:value-of select="$i + 1" />/</xsl:when>
            <!-- Иначе если нулевой уровень - просто ссылка на страницу со списком элементов -->
            <xsl:otherwise></xsl:otherwise>
         </xsl:choose></xsl:variable>

         <a href="{/document/blocks/url}{$group_link}{$number_link}" class="page_link"><xsl:value-of select="$i + 1" /></a>
      </xsl:if>
      
      <!-- Не ставим ссылку на страницу-->
      <xsl:if test="$i = $current_page">
         <span class="current"><xsl:value-of select="$i+1" /></span>
      </xsl:if>

      <!-- Рекурсивный вызов шаблона. НЕОБХОДИМО ПЕРЕДАВАТЬ ВСЕ НЕОБХОДИМЫЕ ПАРАМЕТРЫ! -->
      <xsl:call-template name="for">
         <xsl:with-param name="i" select="$i + 1" />
         <xsl:with-param name="items_on_page" select="$items_on_page" />
         <xsl:with-param name="current_page" select="$current_page" />
         <xsl:with-param name="count_items" select="$count_items" />
      </xsl:call-template>

   </xsl:if>
</xsl:template>

</xsl:stylesheet>


что тут нужно изменить/добавить, чтобы выводился полный путь документа?
#
Re: как решить небольшие проблемы?
Подобная навигация называется "хлебные крошки". Реализации хлебных крошек на сайте посвящена тема на нашем форуме: http://www.hostcms.ru/forums/22/218/
#
Re: как решить небольшие проблемы?
Например, есть вывод заголовков подрубрик, чуть ниже идут элементы из этих подрубрик. Возможно ли около даты
<xsl:value-of disable-output-escaping="yes" select="item_date"/>
каждого элемента информационной системы, поставить рубрику к которой он относиться? Что прописать в xsl шаблоне?
#
Re: как решить небольшие проблемы?
Чтобы рядом с датой писать группу, к которой принадлежит элемент, используйте конструкцию:
<xsl:variable name="group_item_id" select="@group_id"/>
<xsl:value-of disable-output-escaping="yes" select="//group[@id=$group_item_id]/name"/>
#
Re: как решить небольшие проблемы?
<!-- Дата -->
<span class="date4">
   <xsl:value-of disable-output-escaping="yes" select="item_date"/>
</span>
&#xA0;
<!-- Рубрика -->
<span class="rubr">
   <xsl:variable name="group_item_id" select="@group_id"/>
   <xsl:value-of disable-output-escaping="yes" select="//group[@id=$group_item_id]/name"/>
</span>


Пусто, после даты нечего не отображается.
Модератор
#
Re: как решить небольшие проблемы?
CCron,
по умолчанию группы не все выбираются, а только в виде дерева от корня до текущего элемента, это описано в API. Если нужны все группы, см. http://www.hostcms.ru/forums/17/1461/
Авторизация