Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
Уведомление модератора о новом комментарии

Автор koroganРаздел Макросы UMI.CMS

Ответов: 1
Просмотров: 1910
Последний ответ 30 Ноября 2011, 08:58:04
от admin
Как включить комментарии к товаром?

Автор akarihРаздел Шаблоны TPL

Ответов: 7
Просмотров: 3235
Последний ответ 18 Июля 2011, 00:54:32
от admin
Как сделать комментарии современными?

Автор ragivortРаздел Настройка системы и модулей

Ответов: 3
Просмотров: 317
Последний ответ 11 Марта 2016, 11:51:05
от crazygeorgio
Модуль комментарии для отзывов.

Автор SumrakrndРаздел Шаблоны XSLT

Ответов: 4
Просмотров: 141
Последний ответ 01 Марта 2017, 15:03:15
от Sumrakrnd
Комментарии в поиске

Автор serj1983Раздел Настройка системы и модулей

Ответов: 1
Просмотров: 138
Последний ответ 12 Декабря 2016, 22:27:58
от aghigay

0 Пользователей и 1 Гость просматривают эту тему.

*

Exorcist

  • *
  • 25
  • +0/-0
    • Просмотр профиля
    • Allkindle-каждому свой Kindle
Вложенные комментарии
« : 19 Декабря 2011, 07:12:29 »
Как сделать вложенные комментарии? Ответ комментария на комментарий? Хотя бы с Административной стороны. А то пользователи пишут вопросы в комментариях хочется ответить чтобы это было отнесено к текущему комменту

*

Alexey

  • *
  • 42
  • +3/-0
    • Просмотр профиля
Re:Вложенные комментарии
« Ответ #1 : 19 Декабря 2011, 10:23:38 »
Exorcist, здесь смотрел?

*

korogan

  • ***
  • 188
  • +3/-0
    • Просмотр профиля
Re:Вложенные комментарии
« Ответ #2 : 25 Июня 2012, 19:06:18 »
НЕ работает.
Может есть другой способ?

Хотя бы сделать кнопку ответить - это возможно?

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Вложенные комментарии
« Ответ #3 : 29 Июня 2012, 22:59:15 »
в любом случае, если вы используете комментарии не блогов, а обчные комментарии, то это кастомизация, так как макрос добавления обычных комментариев не предусматривает древовидной системы, просто еще один комментарий.

Так что вернее будет разобраться почему не работает код с wiki (ссылку на которую привели выше), чем писать самому с нуля

*

msa

  • *
  • 10
  • +0/-0
    • Просмотр профиля
Re:Вложенные комментарии
« Ответ #4 : 21 Июня 2014, 11:09:36 »
Хочу вернуться к этому вопросу.... Не могу понять как этот макрос применить в xslt-шаблоне. Подскажите пожалуйста :)

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Вложенные комментарии
« Ответ #5 : 21 Июня 2014, 23:54:02 »
вы говорите про то как адаптировать статью на wiki представленную выше под xslt шаблон?
« Последнее редактирование: 22 Июня 2014, 23:40:20 от admin »

*

msa

  • *
  • 10
  • +0/-0
    • Просмотр профиля
Re:Вложенные комментарии
« Ответ #6 : 22 Июня 2014, 15:49:08 »
Да. именно. Правильно я понимаю, что если использовать статью из wiki, то обычные комментарии подключать не нужно? Или же надо и то и другое использовать?

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Вложенные комментарии
« Ответ #7 : 23 Июня 2014, 11:02:55 »
если делаете по статье wiki, то обычный макрос для вывода комментариев не нужен.

xslt шаблон такой же как и у обыных комментариев, только у каждого комментария появляется узел subcomments в котором могут быть дочерние комментарии. Возьмите шаблон из демодиззи или т.п. и в xsl:template? где выводится комментарий, переберите  subcomments узлы рекурсивно

*

msa

  • *
  • 10
  • +0/-0
    • Просмотр профиля
Re:Вложенные комментарии
« Ответ #8 : 23 Июня 2014, 14:25:27 »
Что-то не то немножко получается. Гдето не так я делаю. пока не могу увидеть где. Вот что у меня получается
<xsl:template match="result[@module='news'][@method='item']">

<script type="text/javascript">
<xsl:text>
function setCommentParent(parentId) {
var form   = document.getElementById('comment_add_form');
var editor = document.getElementById('message');
if(form)
form.action = '/comments/post/' + parentId + '/';
if(editor)
editor.focus();
</xsl:text>
</script>
<div id="news-item">
бла-бла-бла
</div>
<div id="comments">
<h3>Комментарии</h3>
<xsl:apply-templates select="document(concat('udata://comments/commentsList/', page/@id))/udata"/>
<xsl:apply-templates select="document(concat('udata://comments/commentsList/', /result/@pageId))/udata/action"/>
</div>
</xsl:template>
Далее организовываю вывод
<xsl:template match="udata[@module = 'comments'][@method = 'commentsList'][items/item]">
  <ul>
    <xsl:apply-templates select="items/item" mode="comment" />
  </ul>
</xsl:template>

<xsl:template match="item" mode="comment">
  <li>
    <xsl:apply-templates select="document(concat('udata://users/viewAuthor/', author_id))/udata" mode="author"/>
<span class="time"> / <xsl:value-of select="document(concat('udata://system/convertDate/', publish_time, '/(d.m.Y)/'))/udata"/></span>
    <div class="message">
          <xsl:value-of select="content" disable-output-escaping="yes" />
    </div>
<p style="padding-bottom:20px;">
(<a href="#comment_add_form" onclick="javascript:setCommentParent({@cid});">Ответить</a>)
</p>
 
<div style="padding-left:30px;">
<xsl:value-of select="subcomments" disable-output-escaping="yes" />
</div>
  </li>
</xsl:template>
<xsl:template match="udata" mode="author">
  <span class="author"> <xsl:value-of select="nickname" /></span>
</xsl:template>

<xsl:template match="action">

  <form method="post" action="{.}" name="comment_add_form" id="comment_add_form">
   <fieldset class="intext">
<div class="ctrlHolder required">
   <textarea name="comment" id="comment_text" cols="6" />
</div>
    </fieldset>
    <input class="submitButton" type="submit" value="Добавить комментарий"/>

  </form>

</xsl:template>
Вроде все появляется. Но когда нажимаешь на кнопку ответить ни чего не происходит. Вернее происходит - перескакиваю на форму ответа и если вношу туда текст и нажимаю "Добавить комм" добавляется новый комментарий а не ответ к предыдущему...

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Вложенные комментарии
« Ответ #9 : 23 Июня 2014, 14:31:18 »
1. каждый комментарий который вы выводите должен выводиться через apply-templates, конструкция вида <xsl:value-of select="subcomments" disable-output-escaping="yes" /> просто выведет текст, а вам надо вывести весь html блок одного комментария, поэтому вам надо сделать что-то вроде такого запроса

<xsl:apply-templates select="subcomments/item" mode="comment" />

*

msa

  • *
  • 10
  • +0/-0
    • Просмотр профиля
Re:Вложенные комментарии
« Ответ #10 : 23 Июня 2014, 15:44:56 »
Тут даже не проблема в том, что у меня не выводятся вложенные комментарии, у меня не появляется форма для ответа на комментарий. При нажатии на кнопку ответить, я так понимаю должна она как раз появиться...

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Вложенные комментарии
« Ответ #11 : 23 Июня 2014, 17:33:42 »
я так понимаю, форма у вас одна и при нажатии ответить у этой формы меняется action (что видно по вашему js коду setCommentParent())

Так что возможно у вас проблема с js кодом?

*

msa

  • *
  • 10
  • +0/-0
    • Просмотр профиля
Re:Вложенные комментарии
« Ответ #12 : 26 Июня 2014, 08:18:27 »
Форма действительно одна. Просто не понятно почему не добавляется комментарий вложенный, а добавляется новый....

*

admin

  • *****
  • 2416
  • +171/-1
    • Просмотр профиля
Re:Вложенные комментарии
« Ответ #13 : 26 Июня 2014, 12:12:40 »
потому, что у action формы есть id, который указывает родителя длянового комментария. Если ваш js не срабатывает и id не меняется, то система всегда генерит новые комментарии к текущей странице, а не к какому-то комментарию в данной ветке