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

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

Ответов: 2
Просмотров: 3104
Последний ответ 22 Ноября 2012, 14:32:15
от admin
Ограничить вывод комментариев на некоторых страницах

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

Ответов: 21
Просмотров: 7627
Последний ответ 18 Октября 2013, 19:06:29
от Seweryss
Форма добавления комментариев (xslt)

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

Ответов: 23
Просмотров: 18554
Последний ответ 30 Июля 2012, 22:54:24
от BaceH
редирект на страницу комментариев (xslt)

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

Ответов: 4
Просмотров: 1800
Последний ответ 29 Декабря 2016, 09:04:28
от arbuzzz
Ошибка при добавлении комментариев

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

Ответов: 9
Просмотров: 6105
Последний ответ 17 Марта 2012, 19:26:01
от Aksuk

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

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Последние 10 комментариев
« Ответ #15 : 15 Июля 2013, 15:39:05 »
Попробуйте http://temp03.web-image.ru/.xml

Спасибо, e.ioffe! Как всегда решения было под носом у меня., однако ни чего в http://temp03.web-image.ru/.xml документе про вызов данных о комментариях <xsl:apply-templates select="document('usel://MainBookReviews/')" mode="main-book-reviews" />  я не нашёл...

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #16 : 15 Июля 2013, 15:46:00 »
конструкция copy-of выводит xml
используйте такой вариант
<textarea style="height:500px; width:900px">
<xsl:copy-of select="usel://MainBookReviews/" />
</textarea>


или в адресной строке вбейте  http://temp03.web-image.ru/usel://MainBookReviews/ и вы увидите xml того что вам возвратиться и сравните его с тем что ожидает чыд шаблоны при обработке комментариев http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/kommentarii/comments_insert/#xslt-templating

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Последние 10 комментариев
« Ответ #17 : 15 Июля 2013, 17:34:12 »
... или в адресной строке вбейте  http://temp03.web-image.ru/usel://MainBookReviews/ и вы увидите xml того что вам возвратиться и сравните его с тем что ожидает чыд шаблоны при обработке комментариев http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/kommentarii/comments_insert/#xslt-templating

и выдала система вот такое:
<udata generation-time="0.0">
   <error>You don't have permissions to call protocol "usel://" via HTTP</error>
</udata>

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #18 : 15 Июля 2013, 19:05:16 »
нодо прописать или исправить в файле ./config.ini настройку usel.http.allow = 1 см. подробнее в документации http://dev.docs.umi-cms.ru/nastrojka_sistemy/dostupnye_sekcii/sekciya_streams/

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Последние 10 комментариев
« Ответ #19 : 15 Июля 2013, 21:17:13 »
нодо прописать или исправить в файле ./config.ini настройку usel.http.allow = 1 см. подробнее в документации http://dev.docs.umi-cms.ru/nastrojka_sistemy/dostupnye_sekcii/sekciya_streams/

Уже подключил и вот что получается в виде xml

<udata module="usel" method="MainBookReviews" generation-time="0.025882">
  <page id="108" parentId="107" link="/information_for_tourists/feedback_and_suggestions/spasibo_za_novye_vpechatleniya/" is-active="1" object-id="677" type-id="63" type-guid="comments-comment" update-time="1373045167" alt-name="spasibo_za_novye_vpechatleniya" xlink:href="upage://108">
    <basetype id="38" module="comments" method="comment">Комментарий</basetype>
    <name>Спасибо за новые впечатления!</name>
  </page>
  <page id="154" parentId="107" link="/information_for_tourists/feedback_and_suggestions/vtoroj_testovyj_otzyv/" is-active="1" object-id="756" type-id="63" type-guid="comments-comment" update-time="1373879075" alt-name="vtoroj_testovyj_otzyv" xlink:href="upage://154">
    <basetype id="38" module="comments" method="comment">Комментарий</basetype>
    <name>Второй тестовый отзыв!</name>
  </page>
  <page id="155" parentId="107" link="/information_for_tourists/feedback_and_suggestions/otzyv_nomer_3_-_test/" is-active="1" object-id="757" type-id="63" type-guid="comments-comment" update-time="1373879120" alt-name="otzyv_nomer_3_-_test" xlink:href="upage://155">
    <basetype id="38" module="comments" method="comment">Комментарий</basetype>
    <name>Отзыв номер 3 - тест</name>
  </page>
  <total>6</total>
</udata>
В общем что вызываем, то и получаем.
Осталось додуматься как вывести текст комментария, и имя его автора...
То есть надо подумать над самим файлом MainBookReviews,xsl с конструкцией видимо:
<?xml version="1.0" encoding="UTF-8"?>
   <selection>
     <target result="pages">
        <type id="63" />
     </target>
     <sort order="descending">publish_time</sort>
        <limit page="0">3</limit>  
   </selection>
?

В документации http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/kommentarii/comments_insert/#xslt-templating приведён пример  с вызовом как я уже опробовал:
<xsl:apply-templates select="document('udata://comments/insert/3')" mode="review" />

и тогда появляются <item> в которых и содержится текст комментария:

 <item 
     id="20" title="Заголовок первого комментария" author_id="27142" num="1"
     xlink:href="upage://20"
     xlink:author-href="udata://users/viewAuthor/27142"
     publish_time="1255517104">Текст первого комментария</item>

А вот как через usel это же самое вытащить?
« Последнее редактирование: 15 Июля 2013, 22:26:50 от Axiomateria »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #20 : 15 Июля 2013, 23:05:57 »
можно через тег extended, который вы указываете в usel xml файле

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Последние 10 комментариев
« Ответ #21 : 16 Июля 2013, 00:28:10 »
можно через тег extended, который вы указываете в usel xml файле

Спасибо, немного полегче стало. Только вот все данные идут сплошной кашей...
http://temp03.web-image.ru/

Сам файл MainBookReviews.xml отредактировал и он теперь такой:

<?xml version="1.0" encoding="UTF-8"?>
   <selection>
     <target result="pages">
        <type id="161" />
     </target>
    <extended>
      <properties>h1, message, author_id, publish_time</properties>
    </extended>
       <limit page="0">1</limit> 
   </selection>

И не понятно ни как - почему же всё таки в вызове (который в шаблоне главной страницы)
<xsl:apply-templates select="document('usel://MainBookReviews/')" mode="main-book-reviews"/>

не подключается сам шаблон mode="main-book-reviews" ?
« Последнее редактирование: 16 Июля 2013, 00:31:34 от Axiomateria »

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re:Последние 10 комментариев
« Ответ #22 : 16 Июля 2013, 00:52:01 »
можно через тег extended, который вы указываете в usel xml файле

Спасибо, немного полегче стало. Только вот все данные идут сплошной кашей...
http://temp03.web-image.ru/

Сам файл MainBookReviews.xml отредактировал и он теперь такой:

<?xml version="1.0" encoding="UTF-8"?>
   <selection>
     <target result="pages">
        <type id="161" />
     </target>
    <extended>
      <properties>h1, message, author_id, publish_time</properties>
    </extended>
       <limit page="0">1</limit> 
   </selection>

И не понятно ни как - почему же всё таки в вызове (который в шаблоне главной страницы)
<xsl:apply-templates select="document('usel://MainBookReviews/')" mode="main-book-reviews"/>

не подключается сам шаблон mode="main-book-reviews" ?


Попробуйте так: <xsl:apply-templates select="document('usel://MainBookReviews/')/udata" mode="main-book-reviews"/>
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Последние 10 комментариев
« Ответ #23 : 16 Июля 2013, 01:02:28 »
Попробуйте так: <xsl:apply-templates select="document('usel://MainBookReviews/')/udata" mode="main-book-reviews"/>

Попробовал... не сработало... шаблон упорно игнорируется...

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #24 : 16 Июля 2013, 01:39:18 »
дело в том, что шаблон для вывода комментария ищет item узел, а usel возвращает туже информацию в page узле. Еще раз сравните xml usel ответа и ответа макроса comment insert()? они совершенно разные и это надо учитывать. Ваши шаблоны для вывода комментариев требует либо клонирования с переделкой, либо добавления доп инструкций... наглядней создать копию шаблонов для вывода комментариев и указать в них match и все прочие выводы данных, отталкиваясь от того где они лежат в xml usel ответа.

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Последние 10 комментариев
« Ответ #25 : 16 Июля 2013, 13:59:48 »
дело в том, что шаблон для вывода комментария ищет item узел, а usel возвращает туже информацию в page узле. Еще раз сравните xml usel ответа и ответа макроса comment insert()? они совершенно разные и это надо учитывать. Ваши шаблоны для вывода комментариев требует либо клонирования с переделкой, либо добавления доп инструкций... наглядней создать копию шаблонов для вывода комментариев и указать в них match и все прочие выводы данных, отталкиваясь от того где они лежат в xml usel ответа.

На данный момент три комментария в xml выглядят так: http://temp03.web-image.ru/usel://MainBookReviews/
- то есть они в принципе существуют и должны выводиться по идее вызовом
<xsl:apply-templates select="document('usel://MainBookReviews/')/udata" mode="main-book-reviews"/> на главной странице.
.
Что почти мне мне удалось, то есть вывести на главную через шаблон mode="main-book-reviews"
	<xsl:template match="udata" mode="main-book-reviews"> 
      <b><xsl:value-of select="//group[@name='common']/property[@name='h1']/value" /></b>
          <p><xsl:text>«</xsl:text><xsl:value-of select="//group[@name='comment_props']/property[@name='message']/value" disable-output-escaping="yes" /><xsl:text>»</xsl:text></p>
          <p>
              <xsl:value-of select="//group[@name='comment_props']/property[@name='author_id']/value/item/@name" />
           <i><xsl:value-of select="//group[@name='comment_props']/property[@name='publish_time']/value" /></i>
          </p>        
</xsl:template>
<xsl:template match="page|item" mode="main-book-reviews">
        <xsl:apply-templates select="page">
              <xsl:value-of select="." />        
</xsl:apply-templates>      
</xsl:template>
НО пока только один комментарий удаётся вывести, когда как их там изначально три....

видимо что-то опять не доделал или в упор решение не вижу...
« Последнее редактирование: 16 Июля 2013, 14:02:03 от Axiomateria »

*

NOIRMAN

  • *****
  • 101
  • +16/-1
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #26 : 17 Июля 2013, 09:19:54 »
1. В общем теле шаблона (match=udata) вы пытаетесь вывести данные для страницы. Этот вывод хорошо бы перенести в шаблон для page
2. В нем же (match=udata) было бы неплохо вызвать шаблон page

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Последние 10 комментариев
« Ответ #27 : 17 Июля 2013, 14:49:12 »
1. В общем теле шаблона (match=udata) вы пытаетесь вывести данные для страницы. Этот вывод хорошо бы перенести в шаблон для page
2. В нем же (match=udata) было бы неплохо вызвать шаблон page

Я последовал вашему совету, NOIRMAN. и если всё правильно понял я так и сделал:
	<xsl:template match="udata" mode="main-book-reviews"> 
      <b><xsl:value-of select="//group[@name='common']/property[@name='h1']/value" /></b>
          <p><xsl:text>«</xsl:text><xsl:value-of select="//group[@name='comment_props']/property[@name='message']/value" disable-output-escaping="yes" /><xsl:text>»</xsl:text></p>
          <p>
              <xsl:value-of select="//group[@name='comment_props']/property[@name='author_id']/value/item/@name" />
           <i><xsl:value-of select="//group[@name='comment_props']/property[@name='publish_time']/value" /></i>
          </p>        
</xsl:template>
<xsl:template match="page|item" mode="main-book-reviews">
        <xsl:apply-templates select="page">
              <xsl:value-of select="." />        
</xsl:apply-templates>      
</xsl:template>
Однако снова теперь в результате вижу сплошную кашу из данных о комментариях (правый нижний блок): http://temp03.web-image.ru/

*

NOIRMAN

  • *****
  • 101
  • +16/-1
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #28 : 18 Июля 2013, 11:16:49 »
Попробуйте примерно в таком виде:
<xsl:template match="udata" mode="main-book-reviews"> 
              <xsl:apply-templates select="page" mode="main-book-reviews" />
</xsl:template>
<xsl:template match="page|item" mode="main-book-reviews">
<b><xsl:value-of select="//group[@name='common']/property[@name='h1']/value" /></b>
          <p><xsl:text>«</xsl:text><xsl:value-of select="//group[@name='comment_props']/property[@name='message']/value" disable-output-escaping="yes" /><xsl:text>»</xsl:text></p>
          <p>
              <xsl:value-of select="//group[@name='comment_props']/property[@name='author_id']/value/item/@name" />
           <i><xsl:value-of select="//group[@name='comment_props']/property[@name='publish_time']/value" /></i>
          </p>
</xsl:template>


*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Последние 10 комментариев
« Ответ #29 : 18 Июля 2013, 14:32:33 »
Попробуйте примерно в таком виде:
<xsl:template match="udata" mode="main-book-reviews"> 
              <xsl:apply-templates select="page" mode="main-book-reviews" />
</xsl:template>
<xsl:template match="page|item" mode="main-book-reviews">
<b><xsl:value-of select="//group[@name='common']/property[@name='h1']/value" /></b>
          <p><xsl:text>«</xsl:text><xsl:value-of select="//group[@name='comment_props']/property[@name='message']/value" disable-output-escaping="yes" /><xsl:text>»</xsl:text></p>
          <p>
              <xsl:value-of select="//group[@name='comment_props']/property[@name='author_id']/value/item/@name" />
           <i><xsl:value-of select="//group[@name='comment_props']/property[@name='publish_time']/value" /></i>
          </p>
</xsl:template>


Спасибо, попробовал. Но у меня уже ранее похожее такое получалось - то есть выводится один и тот же первый комментарий три раза подряд... А там три разных комментария...

И здесь их три разных http://temp03.web-image.ru/usel://MainBookReviews/

Может быть теперь  с вызовом
<xsl:apply-templates select="document('usel://MainBookReviews/')/udata" mode="main-book-reviews"/>
надо как-то ещё поработать ?
Вот например такой вариант вызова
<xsl:apply-templates select="document(concat('upage://', document(concat('usel://MainBookReviews/', @id))/udata/page/@id))/udata/page" mode="main-book-reviews" />
выводит только один комментарий (при чём первый, когда как надо конечно последний)...
« Последнее редактирование: 18 Июля 2013, 14:34:54 от Axiomateria »