UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Sumrakrnd от 28 Февраля 2017, 16:52:53

Название: Модуль комментарии для отзывов.
Отправлено: Sumrakrnd от 28 Февраля 2017, 16:52:53
Доброго времени суток.

Использовала я модуль комментарии для страницы отзывы и возникло пару вопросов:

1) как вызвать пагинацию для комментариев.

2) как правильно вызвать дату публикации самого комментария. Если я просто обращаюсь к @publish_time он берет unix-timestamp, а мне надо formatted-date
часть xml комментария:
<property id="208" name="publish_time" type="date" is-important="1">
   <title>Дата публикации</title>
       <value formatted-date="27.02.2017 19:34" unix-timestamp="1488213297">Mon, 27 Feb 2017 19:34:57 +0300</value>
</property>


Вот вызов комментариев:
							<section class="container reviews">
<xsl:apply-templates select="document(concat('udata://comments/insert/', page/@id))/udata"/>
</section>
И вот:
	<xsl:template match="udata[@module = 'comments'][@method = 'insert']">
<aside>
<div class="form_review comments" umi:module="comments" umi:add-method="none" umi:region="list" umi:sortable="sortable">
<xsl:apply-templates select="add_form" mode="guest" />
</div>
</aside>

<section class="content">
<xsl:apply-templates select="total" />

<a name="comments" />
<h3>
<xsl:text>Свежие отзывы</xsl:text>
</h3>
<div class="all-reviews comments" umi:module="comments" umi:add-method="none" umi:region="list" umi:sortable="sortable">
<xsl:apply-templates select="items/item" mode="comment" />
</div>
</section>

</xsl:template>

<xsl:template match="udata[@method = 'insert']/add_form" mode="guest">
<a name="add-comment" />
<form class="form" method="post" action="{action}" id="form_for_comments">
<legend>Напишите свой отзыв</legend>
<fieldset>
<input type="text" name="author_nick" placeholder="Вас зовут" class="textinputs" />

<input type="text" name="author_email" placeholder="E-mail" class="textinputs" />

<textarea cols="48" rows="5" placeholder="Сообщение" name="comment"></textarea>
</fieldset>
<fieldset>
<input type="submit" class="button" value="Отправить" />
</fieldset>
</form>
</xsl:template>
<xsl:template match="item" mode="comment">
<div class="review item" umi:element-id="{@id}" umi:region="row">
<span class="date">
<xsl:value-of select="@publish_time" disable-output-escaping="yes" />
</span>
<div class="review_text" tabindex="0">
<span class="arrow"></span>
<h4 umi:field-name="author_id" umi:delete="delete" umi:empty="&empty;">
<xsl:value-of select="." disable-output-escaping="yes" />
</h4>
<p class="descr" umi:field-name="message" umi:delete="delete" umi:empty="&empty;">
<xsl:value-of select="." disable-output-escaping="yes" />
</p>
</div>
</div>
</xsl:template>

И такой маленький вопрос, если мне нужно будет позже подключить комментарии к новостям.
Может этот запрос на комментарии для отзывов сделать через свой mode?
Название: Re: Модуль комментарии для отзывов.
Отправлено: Sumrakrnd от 28 Февраля 2017, 17:04:53
3) я сейчас заметила очень странный глюк.

message - это поле сообщения.
author_id - это поле с именем.

Но почему-то вместо информации из поля author_id подставляется информация из поля message  О_О
Название: Re: Модуль комментарии для отзывов.
Отправлено: Sumrakrnd от 28 Февраля 2017, 17:42:00
Проблему с датой решила, откопала вот такое обращение:
			<span class="date" umi:field-name="publish_time" itemprop="datePublished">
<xsl:attribute name="content">
<xsl:call-template name="format-date">
<xsl:with-param name="date" select="@publish_time" />
<xsl:with-param name="pattern" select="'Y-m-d'" />
</xsl:call-template>
</xsl:attribute>
<xsl:call-template name="format-date">
<xsl:with-param name="date" select="@publish_time" />
</xsl:call-template>
</span>
Название: Re: Модуль комментарии для отзывов.
Отправлено: Sumrakrnd от 28 Февраля 2017, 19:32:29
Пагинацию тоже смогла разобраться


Помогите с выводом имени пользователя из поля Т_Т
Название: Re: Модуль комментарии для отзывов.
Отправлено: Sumrakrnd от 01 Марта 2017, 15:03:15
Ух... нашла
Оказывается есть такой запрос:

   
<xsl:apply-templates select="document(concat('udata://users/viewAuthor/', @author_id))/udata"/>