Изменение xsl шаблона (FAQ)

#
Изменение xsl шаблона (FAQ)
Пытался сделать отображение описания к группам не вышло.
Что надо сделать в этом неизмененом коде для получения эффекта.
И отвечает ли этот шаблон за вывод на главной странице (FAQ) блока с вопросами и кнопкой добавить.
Если да покажите мне его пожалуйста.
Да и куда делся раздел вашего сайта (Полезные решения на базе модулей)


<?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">

   <h1><xsl:value-of disable-output-escaping="yes" select="blocks/name"/>
   <xsl:if  test = "blocks/parent_group_name!=''">
      /&#xA0;<xsl:value-of disable-output-escaping="yes" select="blocks/parent_group_name"/>
   </xsl:if></h1>
   
   <xsl:value-of disable-output-escaping="yes" select="blocks/description"/>
   
   <!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
   <xsl:variable name="parent_group_id" select="blocks/parent_group_id"/>   
   
   <!-- Отображение подгрупп данной группы -->
   <ul>
      <xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="goups"/>
   </ul>

   <p><a href="add/">Добавить вопрос</a></p>

   <!-- Стиль заголовка таблицы -->
   <xsl:variable name="top_style">background-color: #F0F0F0; text-align: center; font-weight: bold;</xsl:variable>

   <!-- Отображение записей информационного блока -->
   <table border="0" cellpadding="5" cellspacing="1" style="margin-top: 10px;" width="100%">
   <tr>
      <td style="{$top_style}">Вопрос</td>
      <td style="{$top_style}">Автор</td>
      <td style="{$top_style}">Дата</td>
   </tr>
   <xsl:apply-templates select="blocks/items/item[item_status=1]" />
   </table>


   <p>
   <!-- Строка ссылок на другие страницы информационного блока -->
   <xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1">
      <xsl:if test="blocks/items/count_items > blocks/items/items_on_page">
         <center>
            <xsl:call-template name="for">
              <xsl:with-param name="n" select="blocks/items/count_items div blocks/items/items_on_page"/>
              <xsl:with-param name="current_page" select="blocks/items/current_page"/>
            </xsl:call-template>
         </center>
      </xsl:if>
   </xsl:if>
   </p>

</xsl:template>

<!-- ========================================== -->
<!-- Шаблон для вывода информационных элементов -->
<!-- ========================================== -->
<xsl:template match="blocks/items/item">

   <!-- Определяем стиль вывода строки таблицы -->
   <xsl:variable name="link_style"><xsl:choose>
      <!-- Выделяем четную страницу фоном -->
      <xsl:when test="position() mod 2 = 0">background-color: #F0F0F0</xsl:when>
      <!-- Иначе обычный вывод -->
      <xsl:otherwise></xsl:otherwise>
   </xsl:choose></xsl:variable>

   <tr>
   <td style="{$link_style}">
      <a href="{item_path}"><xsl:value-of disable-output-escaping="yes" select="item_name"/></a>
   </td>
   <td style="{$link_style}">
      <!-- Автор -->
      <a href="mailto:{item_propertys/item_property/email}"><xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/autor"/></a>
   </td>
   <td style="white-space: nowrap; {$link_style}">
      <!-- Дата -->
      <b><xsl:value-of disable-output-escaping="yes" select="item_datetime"/></b>
   </td>
   </tr>
</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="goups">
   <xsl:variable name="parent_id" select="@parent_id"/>
   <li>
      <xsl:if test="small_image!=''">
         <a href="/upload/{big_image}" 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>
   </li>
</xsl:template>

<!-- Цикл для вывода строк ссылок -->
<xsl:template name="for">
   <xsl:param name="i" select="0"/>
   <xsl:param name="n"/>
   <xsl:param name="current_page"/>
   
   <xsl:if test="$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}"><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="n" select="$n"/>
         <xsl:with-param name="current_page" select="$current_page"/>
      </xsl:call-template>
   </xsl:if>
</xsl:template>


</xsl:stylesheet>
#
Re: Изменение xsl шаблона (FAQ)
И так первое я понял как вывести описание но непонял как убрать с главной страницы (FAQ) блок вопросов и кнопку добавить
#
Re: Изменение xsl шаблона (FAQ)
Чтото понаписал да все не так.
Получилось все неправильно.Отображаются на главной категории но описание категории только одной да и то не там где надо.Подскажите где я не так сделал.
<?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">

   <div class="slim"><xsl:value-of disable-output-escaping="yes" select="blocks/name"/>
   <xsl:if  test = "blocks/parent_group_name!=''">
      /&#xA0;<xsl:value-of disable-output-escaping="yes" select="blocks/parent_group_name"/>
   </xsl:if></div>
   
   <xsl:value-of disable-output-escaping="yes" select="blocks/description"/>
   
   <!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
   <xsl:variable name="parent_group_id" select="blocks/parent_group_id"/>   
   
   <!-- Отображение подгрупп данной группы -->
   
      <div class="slim"><xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="goups"/></div>
   

<table border="0" cellpadding="5" cellspacing="1" style="margin-top: 10px;" width="100%">
<tr>
      <td>
<xsl:value-of disable-output-escaping="yes" select="blocks/group/description"/>
</td>
</tr>
</table>

<!-- Если не в корне -->
<xsl:if test="blocks/parent_group_id != 0">
<form id="form1" name="form1" method="post" action="add/">
  <input type="submit" name="Submit" value="Добавить вопрос" />
</form>
</xsl:if>

<!-- Выводим таблицу, если есть хоть одна запись -->
<xsl:if test="count(blocks/items/item[item_status=1]) > 0">

   <!-- Стиль заголовка таблицы -->
   <xsl:variable name="top_style">background-color: #F0F0F0; text-align: center; font-weight: bold;</xsl:variable>

   <!-- Отображение записей информационного блока -->
   <table border="0" cellpadding="5" cellspacing="1" style="margin-top: 10px;" width="100%">
   <tr>
      <td style="{$top_style}">Вопрос</td>
      <td style="{$top_style}">Автор</td>
      <td style="{$top_style}">Дата</td>
   </tr>
   <xsl:apply-templates select="blocks/items/item[item_status=1]" />
   </table>
</xsl:if>

   <xsl:if test="ОтображатьСсылкиНаСледующиеСтраницы=1">
   <p>
   <!-- Строка ссылок на другие страницы информационного блока -->
      <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>
   </p>
   </xsl:if>

</xsl:template>

<!-- ========================================== -->
<!-- Шаблон для вывода информационных элементов -->
<!-- ========================================== -->
<xsl:template match="blocks/items/item">

   <!-- Определяем стиль вывода строки таблицы -->
   <xsl:variable name="link_style"><xsl:choose>
      <!-- Выделяем четную страницу фоном -->
      <xsl:when test="position() mod 2 = 0">background-color: #F0F0F0</xsl:when>
      <!-- Иначе обычный вывод -->
      <xsl:otherwise></xsl:otherwise>
   </xsl:choose></xsl:variable>

   <tr>
   <td style="{$link_style}">
      <a href="{item_path}"><xsl:value-of disable-output-escaping="yes" select="item_name"/></a>
   </td>
   <td style="{$link_style}">
      <!-- Автор -->
      <a href="mailto:{item_propertys/item_property/email}"><xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/autor"/></a>
   </td>

   <td style="white-space: nowrap; {$link_style}">
      <!-- Дата -->
      <b><xsl:value-of disable-output-escaping="yes" select="item_datetime"/></b>
   </td>
   </tr>
</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><xsl:value-of disable-output-escaping="yes" select="blocks/group/description"/>
   ->
   <a href="{/document/blocks/url}{fullpath}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
</xsl:template>

<!-- ======================================================== -->
<!-- Шаблон выводит ссылки подгурппы инф. элемента -->
<!-- ======================================================== -->
<xsl:template match="group" mode="goups">
   <xsl:variable name="parent_id" select="@parent_id"/>
   <p class="title1">
      <xsl:if test="small_image!=''">
         <a href="/upload/{big_image}" 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>
   </p>

</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: Изменение xsl шаблона (FAQ)
Цитата:
И так первое я понял как вывести описание но непонял как убрать с главной страницы (FAQ) блок вопросов и кнопку добавить

Проверить, если число для отображения элементов больше 0, то выводить.

вместо:

   <table border="0" cellpadding="5" cellspacing="1" style="margin-top: 10px;" width="100%">
   <tr>
      <td style="{$top_style}">Вопрос</td>
      <td style="{$top_style}">Автор</td>
      <td style="{$top_style}">Дата</td>
   </tr>
   <xsl:apply-templates select="blocks/items/item[item_status=1]" />
   </table>


написать


<xsl:if test="count(blocks/items/item) > 0">

   <table border="0" cellpadding="5" cellspacing="1" style="margin-top: 10px;" width="100%">
   <tr>
      <td style="{$top_style}">Вопрос</td>
      <td style="{$top_style}">Автор</td>
      <td style="{$top_style}">Дата</td>
   </tr>
   <xsl:apply-templates select="blocks/items/item" />
   </table>
</xsl:if>


и кнопу добавления в такое же условие
#
Re: Изменение xsl шаблона (FAQ)
Спасибо с этим понятно.
Теперь вопрос в следующем.
<div class="slim"><xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="goups"/></div>
  

<table border="0" cellpadding="5" cellspacing="1" style="margin-top: 10px;" width="100%">
<tr>
      <td>
<xsl:value-of disable-output-escaping="yes" select="blocks/group/description"/>
</td>
</tr>
</table>

И получаю следующее.
Пример:1 Если у меня одна группа то все выводится прекрасно(сверху ссылка под ней описание)
Пример:2 Если у меня две и более сперва ссылки а потом описание от той группы которая свежее.
Чего требуется?
Группы выводятся с описаниеем (сверху ссылка под ней описание)
Если можно и несложно покажите примером (а лучше полным кодом шаблона)  
Авторизация