Вывод информации на главной
Подскажите плиз, как сделать:
есть шаблон, Основной + 3 новости снизу, так он по умолчанию назывался, есть информационная система статьи, в ней есть несколько групп, эта система выводится на главной странице, но выводится не только последние добавленные статьи, но и список групп этой системы, как можно сделать, чтобы выводились только последние статьи без списка групп?
есть шаблон, Основной + 3 новости снизу, так он по умолчанию назывался, есть информационная система статьи, в ней есть несколько групп, эта система выводится на главной странице, но выводится не только последние добавленные статьи, но и список групп этой системы, как можно сделать, чтобы выводились только последние статьи без списка групп?
vano,
Необходимо сделать копию XSL-шаблона для вывода списка информационных элементов и в нем удалить/закомментировать код вызова показа подгрупп
Необходимо сделать копию XSL-шаблона для вывода списка информационных элементов и в нем удалить/закомментировать код вызова показа подгрупп
Что то не получается, наверно не так делаю:
делаю копию СписокЭлементовИнфосистемы [Копия от 04.04.2007] оригинал оставляю, в копии с таким кодом:
<?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">
<h1><xsl:value-of disable-output-escaping="yes" select="blocks/name"/></h1>
<xsl:value-of disable-output-escaping="yes" select="blocks/description"/>
</xsl:if>
<!-- Если в находимся в группе - выводим название группы -->
<xsl:if test="blocks/parent_group_id!=0">
<h1><xsl:value-of disable-output-escaping="yes" select=".//group[@id=$parent_group_id]/name"/></h1>
<!-- Путь к группе -->
<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:if test="blocks/items/count_items > blocks/items/items_on_page">
<strong>
<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>
</strong>
</xsl:if>
</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>
<td align="right">
<a href="{blocks/url}rss/"><img src="/images/rss/rss_2.0.gif"/></a>
</td>
</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> 
</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 match="blocks/items/item">
<div style="margin-right:10px; margin-bottom: 5px;">
<!-- Дата время -->
<span class="news_date"><xsl:value-of disable-output-escaping="yes" select="item_datetime"/></span>
<br />
<!-- Название -->
<a href="{item_path}" class="news_title"><xsl:value-of disable-output-escaping="yes" select="item_name"/></a>
<br />
<!-- Изображение для информационного элемента (если есть) -->
<xsl:if test="item_small_image!=''">
<a href="{item_path}" class="news_title"><img src="/{item_small_image}" class="partner_img" alt="" style="margin: 3px 10px 10px 0px" align="left"/></a>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="item_description"/>
<div style="clear: both;"></div>
</div>
</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>
удаляю
<!-- Отображение подгрупп данной группы -->
<ul>
<xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/>
</ul>
и все остается так, как было
Для тех, кто в танке, пошагово можно?
делаю копию СписокЭлементовИнфосистемы [Копия от 04.04.2007] оригинал оставляю, в копии с таким кодом:
<?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">
<h1><xsl:value-of disable-output-escaping="yes" select="blocks/name"/></h1>
<xsl:value-of disable-output-escaping="yes" select="blocks/description"/>
</xsl:if>
<!-- Если в находимся в группе - выводим название группы -->
<xsl:if test="blocks/parent_group_id!=0">
<h1><xsl:value-of disable-output-escaping="yes" select=".//group[@id=$parent_group_id]/name"/></h1>
<!-- Путь к группе -->
<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:if test="blocks/items/count_items > blocks/items/items_on_page">
<strong>
<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>
</strong>
</xsl:if>
</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>
<td align="right">
<a href="{blocks/url}rss/"><img src="/images/rss/rss_2.0.gif"/></a>
</td>
</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> 
</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 match="blocks/items/item">
<div style="margin-right:10px; margin-bottom: 5px;">
<!-- Дата время -->
<span class="news_date"><xsl:value-of disable-output-escaping="yes" select="item_datetime"/></span>
<br />
<!-- Название -->
<a href="{item_path}" class="news_title"><xsl:value-of disable-output-escaping="yes" select="item_name"/></a>
<br />
<!-- Изображение для информационного элемента (если есть) -->
<xsl:if test="item_small_image!=''">
<a href="{item_path}" class="news_title"><img src="/{item_small_image}" class="partner_img" alt="" style="margin: 3px 10px 10px 0px" align="left"/></a>
</xsl:if>
<xsl:value-of disable-output-escaping="yes" select="item_description"/>
<div style="clear: both;"></div>
</div>
</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>
удаляю
<!-- Отображение подгрупп данной группы -->
<ul>
<xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="groups"/>
</ul>
и все остается так, как было

Для тех, кто в танке, пошагово можно?
Авторизация