изменение порядка отображения комментариев к ИС
версия 4.4.4.
у меня в ИС Вопросы и ответы отображаются записи по дате - последние вверху;
соответственно и комментарии (ответы) к каждой записи тоже отображаются последние вверху
а по логике надо бы наоборот
сами записи - сортировка последние наверху
а ответы (комментарии) - сортировка последние внизу
как сделать это?
а также как сделать, чтоб комментарии(ответы) могли бы пользователи с сайта добавлять для каждого вопроса???
сейчас шаблон такой:
у меня в ИС Вопросы и ответы отображаются записи по дате - последние вверху;
соответственно и комментарии (ответы) к каждой записи тоже отображаются последние вверху
а по логике надо бы наоборот
сами записи - сортировка последние наверху
а ответы (комментарии) - сортировка последние внизу
как сделать это?
а также как сделать, чтоб комментарии(ответы) могли бы пользователи с сайта добавлять для каждого вопроса???
сейчас шаблон такой:
<?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 method="html" indent="yes" encoding="Windows-1251"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/document">
<!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
<xsl:param 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>
</xsl:if>
<!-- ============= -->
<!-- Путь к гурппе -->
<!-- ============= -->
<xsl:apply-templates select=".//group[@id=$parent_group_id]" mode="goup_path"/>
<p/>
<!-- ========= -->
<!-- Подгруппы -->
<!-- ========= -->
<!-- Отображение подгрупп данной группы -->
<ul>
<xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="goups">
<xsl:sort select="@order"/>
</xsl:apply-templates>
</ul>
<p/>
<!-- преждний код
<h1><xsl:value-of disable-output-escaping="yes" select="blocks/name"/>
<xsl:apply-templates select="blocks/groups_tree/group_node"/>
</h1>
-->
<a href="/faq/add_question/?add_question=1&blocks_id={blocks/@id}&group_id={blocks/parent_group_id}">Добавить запись</a>
<p/>
<xsl:if test="count(blocks/groups/group) > 0">
<!-- Отображение подгрупп данной группы -->
<ul>
<xsl:apply-templates select="blocks/groups/group">
<xsl:sort select="@order"/>
</xsl:apply-templates>
</ul>
<p/>
</xsl:if>
<!-- Отображение записи информационного блока -->
<ul>
<xsl:apply-templates select="blocks/items/item[item_status=1]">
</xsl:apply-templates>
</ul>
<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>
</xsl:template>
<xsl:template match="blocks/groups/group">
<li><a href="{/document/blocks/url}{group_url}"><xsl:value-of disable-output-escaping="yes" select="group_name"/></a></li>
</xsl:template>
<xsl:template match="blocks/items/item"><hr/>
<p/>
<li><b><xsl:value-of disable-output-escaping="yes" select="item_name"/></b>   Автор: <a href="mailto:{item_propertys/item_property/email}"><xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/autor"/></a>   <b><xsl:value-of disable-output-escaping="yes" select="item_datetime"/></b><br/><xsl:value-of disable-output-escaping="yes" select="item_text"/>
<xsl:if test="count(item_comments/comment[comment_status=1]) > 0">
<ul>
<xsl:apply-templates select="item_comments/comment
[comment_status=1]">
</xsl:apply-templates>
</ul>
</xsl:if>
</li>
</xsl:template>
<xsl:template match="item_comments/comment">
<li>
<xsl:value-of disable-output-escaping="yes" select="comment_subject"/><br/>Автор: <a href="mailto:{comment_email}"><xsl:value-of disable-output-escaping="yes" select="comment_fio"/></a>  ·  <b><xsl:value-of disable-output-escaping="yes" select="comment_date"/></b><br/>
<xsl:value-of disable-output-escaping="yes" select="comment_text"/>
</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 != $current_page">
<a href="?page={$i}">
<xsl:value-of select="$i+1"/>
</a>
</xsl:if>
<!-- Не ставим ссылку на страницу-->
<xsl:if test="$i = $current_page">
<xsl:value-of select="$i+1"/>
</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:template match="group" mode="goup_path">
<xsl:param 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:param 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> 
</xsl:if>
<a href="{/document/blocks/url}{fullpath}"><b><xsl:value-of disable-output-escaping="yes" select="name"/></b></a>
</li>
</xsl:template>
</xsl:stylesheet>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" encoding="Windows-1251"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/document">
<!-- Получаем ID родительской группы и записываем в переменную $parent_group_id -->
<xsl:param 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>
</xsl:if>
<!-- ============= -->
<!-- Путь к гурппе -->
<!-- ============= -->
<xsl:apply-templates select=".//group[@id=$parent_group_id]" mode="goup_path"/>
<p/>
<!-- ========= -->
<!-- Подгруппы -->
<!-- ========= -->
<!-- Отображение подгрупп данной группы -->
<ul>
<xsl:apply-templates select=".//group[@parent_id=$parent_group_id]" mode="goups">
<xsl:sort select="@order"/>
</xsl:apply-templates>
</ul>
<p/>
<!-- преждний код
<h1><xsl:value-of disable-output-escaping="yes" select="blocks/name"/>
<xsl:apply-templates select="blocks/groups_tree/group_node"/>
</h1>
-->
<a href="/faq/add_question/?add_question=1&blocks_id={blocks/@id}&group_id={blocks/parent_group_id}">Добавить запись</a>
<p/>
<xsl:if test="count(blocks/groups/group) > 0">
<!-- Отображение подгрупп данной группы -->
<ul>
<xsl:apply-templates select="blocks/groups/group">
<xsl:sort select="@order"/>
</xsl:apply-templates>
</ul>
<p/>
</xsl:if>
<!-- Отображение записи информационного блока -->
<ul>
<xsl:apply-templates select="blocks/items/item[item_status=1]">
</xsl:apply-templates>
</ul>
<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>
</xsl:template>
<xsl:template match="blocks/groups/group">
<li><a href="{/document/blocks/url}{group_url}"><xsl:value-of disable-output-escaping="yes" select="group_name"/></a></li>
</xsl:template>
<xsl:template match="blocks/items/item"><hr/>
<p/>
<li><b><xsl:value-of disable-output-escaping="yes" select="item_name"/></b>   Автор: <a href="mailto:{item_propertys/item_property/email}"><xsl:value-of disable-output-escaping="yes" select="item_propertys/item_property/autor"/></a>   <b><xsl:value-of disable-output-escaping="yes" select="item_datetime"/></b><br/><xsl:value-of disable-output-escaping="yes" select="item_text"/>
<xsl:if test="count(item_comments/comment[comment_status=1]) > 0">
<ul>
<xsl:apply-templates select="item_comments/comment
[comment_status=1]">
</xsl:apply-templates>
</ul>
</xsl:if>
</li>
</xsl:template>
<xsl:template match="item_comments/comment">
<li>
<xsl:value-of disable-output-escaping="yes" select="comment_subject"/><br/>Автор: <a href="mailto:{comment_email}"><xsl:value-of disable-output-escaping="yes" select="comment_fio"/></a>  ·  <b><xsl:value-of disable-output-escaping="yes" select="comment_date"/></b><br/>
<xsl:value-of disable-output-escaping="yes" select="comment_text"/>
</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 != $current_page">
<a href="?page={$i}">
<xsl:value-of select="$i+1"/>
</a>
</xsl:if>
<!-- Не ставим ссылку на страницу-->
<xsl:if test="$i = $current_page">
<xsl:value-of select="$i+1"/>
</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:template match="group" mode="goup_path">
<xsl:param 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:param 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> 
</xsl:if>
<a href="{/document/blocks/url}{fullpath}"><b><xsl:value-of disable-output-escaping="yes" select="name"/></b></a>
</li>
</xsl:template>
</xsl:stylesheet>
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
Puma писал(а):
Добавить выделенный жирным фрагмент:
Puma писал(а):
А сейчас они не могут добавлять для каждого? Для какого могут?
а ответы (комментарии) — сортировка последние внизу
как сделать это?
как сделать это?
Добавить выделенный жирным фрагмент:
<xsl:apply-templates select="item_comments/comment[comment_status=1]">
<xsl:sort select="comment_date" order="ascending"/>
</xsl:apply-templates>
<xsl:sort select="comment_date" order="ascending"/>
</xsl:apply-templates>
Puma писал(а):
а также как сделать, чтоб комментарии (ответы) могли бы пользователи с сайта добавлять для каждого вопроса???
А сейчас они не могут добавлять для каждого? Для какого могут?
сортировка как надо получилась
спасибо
а на счет комментариев - их вообще пользователи не могут добавлять, т.е. они отвечают через Добавить запись и я потом сама копирую в админке текст в "комментарий" к определенной записи.
спасибо
а на счет комментариев - их вообще пользователи не могут добавлять, т.е. они отвечают через Добавить запись и я потом сама копирую в админке текст в "комментарий" к определенной записи.
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
на счет комментариев - взяла другой шаблон
тема закрыта
тема закрыта
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
Авторизация