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

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

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

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

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

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

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

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

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

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

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

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

*

thefate

  • *
  • 37
  • +0/-0
    • Просмотр профиля
    • Свадьба в Липецке
Последние 10 комментариев
« : 06 Апреля 2011, 16:26:00 »
Хотел бы поинересоваться, как можно сделать вывод к примеру на главной странице сайта последние10-15 комментариев. К примеру как это сделано в админке, в модуле комментарии, видны все комментарии.

Хотелось бы реализовать нечто подобное.

Поля: комментарий, кто автор, дата, и к какой новости этот комментарий.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #1 : 07 Апреля 2011, 07:29:01 »
я бы воспользовался макросом %data doSelection()% (описание: http://help-dev.umi-cms.ru/data.doSelection.html и описание протокола usel http://help-dev.umi-cms.ru/chapter.XSLTTemplates.usel.html).
Несколько примеров описано тут http://wiki.umisoft.ru/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BC%D0%B0%D0%BA%D1%80%D0%BE%D1%81%D0%B0_data_doSelection

В вашем случае xml файл выборки будет выглядеть примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<selection>
<target result="pages">
  <type id="651" />
</target>
<sort order="descending">publish_time</sort>
<limit page="0">10</limit>
</selection>

Где в type id вам надо вписать id типа данных комментарии (его можно посмотреть в адресной строке если в модуле шаблоны данных открыть комментарии н редактировании), так как у меня в разных версиях umi это разный id

*

thefate

  • *
  • 37
  • +0/-0
    • Просмотр профиля
    • Свадьба в Липецке
Re:Последние 10 комментариев
« Ответ #2 : 23 Августа 2011, 10:28:10 »
я использую TPL шаблоны.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #3 : 24 Августа 2011, 23:32:31 »
%data doSelection% макрос который позволяет работать с протоколом usel как раз в режиме tpl шаблонизатора

*

korogan

  • ***
  • 188
  • +3/-0
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #4 : 25 Июня 2012, 13:47:18 »
Добрый день!

Подскажите пожалуйста как можно вывести на главную страницу сайта, в определенный блок анонс новости. Что бы каждый раз в него попадал случайный анонс.
Использую макрос %data doSelection%
Не могу понять как составить xml запрос.

*

korogan

  • ***
  • 188
  • +3/-0
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #5 : 25 Июня 2012, 14:14:23 »
Решение следующее.
В файле /classes/modules/custom.php сразу после строки

//TODO: Write your own macroses here

напишите:

public function random_child_id($element_id) {
$childs = Array();
$childs = umiHierarchy::getInstance()->getChilds($element_id);
$rand_element = array_rand($childs, 1);
return $rand_element;
}

С помощью %custom random_child_id([element_id = '0'])%
Мы получаем id страницы

element_id - id родителя - обязательный параметр

Далее в нужном месте вставьте макрос
%news lastlist('27871', 'otzyv_index', 1, 1)%<
где 27871 - id нашей ленты а в шаблоне otzyv_index.tpl
%data getproperty('%custom random_child_id(27871)%', 'otzyv', 'string')%

Макрос %custom random_child_id(27871)% каждуй раз выдает нам разный id и мы получаем кажду раз новый анонс новости.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #6 : 25 Июня 2012, 14:55:16 »
через usel не пробовали? или там какие-нибудь тонкости в задании не позволили?

*

korogan

  • ***
  • 188
  • +3/-0
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #7 : 25 Июня 2012, 14:56:27 »
Не смог составить xml запрос.

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #8 : 25 Июня 2012, 15:01:27 »
тебе нужен вот такой xml (пусть данный файл называется /usels/news_rand.xsl)

<?xml version="1.0" encoding="utf-8"?>

<selection>
<target result="pages">
<type module="news" method="item" />
<category depth="1">{1}</category>
</target>
<sort>rand()</sort>
<limit page="0">1</limit>
</selection>

вызывать его следует так %data doSelection(news_rand_template, news_rand, 27871 )%

где 27871 - id ленты новостей из которой мы хотим вытянуть рандомную новость

*

Axiomateria

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

я бы воспользовался макросом %data doSelection()% (описание: http://help-dev.umi-cms.ru/data.doSelection.html и описание протокола usel http://help-dev.umi-cms.ru/chapter.XSLTTemplates.usel.html).
Несколько примеров описано тут http://wiki.umisoft.ru/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B_%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BC%D0%B0%D0%BA%D1%80%D0%BE%D1%81%D0%B0_data_doSelection

В вашем случае xml файл выборки будет выглядеть примерно так:
<?xml version="1.0" encoding="UTF-8"?>
<selection>
<target result="pages">
  <type id="651" />
</target>
<sort order="descending">publish_time</sort>
<limit page="0">10</limit>
</selection>

Где в type id вам надо вписать id типа данных комментарии (его можно посмотреть в адресной строке если в модуле шаблоны данных открыть комментарии н редактировании), так как у меня в разных версиях umi это разный id

У меня получилось в XSLT вывести на главную страницу только названия самих страничек с комментариями (которых три штуки) таким вот способом: <xsl:apply-templates select="document('usel://MainBookReviews/')" mode="main-book-reviews" /> и файлом  MainBookReviews.xsl (папка ../usels/) с содержимым
<?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>
Но конечная цель вывести комментарии (последние три) на главную страницу в полном виде, в котором отображается дата, автор, заголовок комментария и сам текст комментария...
Попытался подключить через mode="main-book-reviews" в вызове
 
<xsl:apply-templates select="document('usel://MainBookReviews/')" mode="main-book-reviews" /> 
шаблон отображения комментариев в стандартном файле из "demodizzy" comment-view.xsl в папке ../modules/comments/, но не получается...

Что я не доделал ?
« Последнее редактирование: 15 Июля 2013, 14:36:46 от Axiomateria »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #10 : 15 Июля 2013, 14:28:02 »
проверьте какие данные получает usel, чтобы понять что он передал в
Цитировать
шаблон отображения комментариев в стандартном файле из "demodizzy" comment-view.xsl в папке ../modules/commtens/

а затем зайдите в этот шаблон и посмотрите что он ищет для того чтобы вывести комментарий.

Или на крайний случай, сравните xml вашего usel и xml того, что возвращает макрос для вывода комментариев и вы увидите разницу в них. Вот в этой разнице скорее всего и кроется решение вашего вопроса


*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Последние 10 комментариев
« Ответ #11 : 15 Июля 2013, 14:34:03 »
проверьте какие данные получает usel, чтобы понять что он передал в
Цитировать
шаблон отображения комментариев в стандартном файле из "demodizzy" comment-view.xsl в папке ../modules/comments/

да вот в том-то и дело, что у меня не получается просмотреть данные главной страницы в формате .xml, так как http://temp03.web-image.ru/main.xml открывает пустую страницу (то есть ошибка 404 по факту) и следственно перенаправляет  на главную страницу сайта...
 
« Последнее редактирование: 15 Июля 2013, 14:36:04 от Axiomateria »

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Последние 10 комментариев
« Ответ #12 : 15 Июля 2013, 14:44:14 »
вам очень сильно не хватает базового понимания xml и некоторых тех знаний конкретно использовании его в umi/ прочтите небольшую брошюру которая представлена в разделе документации на сайте umi-cms http://docs.umi-cms.ru/xslt-umi-devbook/

учитывая, что вы уже накопили пак вопросов, вам явно будет интересно)

*

Axiomateria

  • ****
  • 322
  • +5/-0
    • Просмотр профиля
    • Разработка продающих сайтов под ключ по честным ценам
Re:Последние 10 комментариев
« Ответ #13 : 15 Июля 2013, 15:24:03 »
вам очень сильно не хватает базового понимания xml и некоторых тех знаний конкретно использовании его в umi/ прочтите небольшую брошюру которая представлена в разделе документации на сайте umi-cms http://docs.umi-cms.ru/xslt-umi-devbook/

учитывая, что вы уже накопили пак вопросов, вам явно будет интересно)

Спасибо, конечно, читать документацию мне не лень.
Читал я это вступительное руководство Даниила Кострова и после этого теоретического ознакомления вот решил перейти к практическим примерам реализации своих вопросов. В конкретном деле учишься быстрее, чем в теории зачитываться.
« Последнее редактирование: 15 Июля 2013, 15:50:30 от Axiomateria »

*

e.ioffe

  • ****
  • 369
  • +81/-2
  • Профессиональная разработка на UMI.CMS.
    • Просмотр профиля
    • Fullspace - Лучший хостинг для UMI.CMS
Re:Последние 10 комментариев
« Ответ #14 : 15 Июля 2013, 15:31:50 »
проверьте какие данные получает usel, чтобы понять что он передал в
Цитировать
шаблон отображения комментариев в стандартном файле из "demodizzy" comment-view.xsl в папке ../modules/comments/

да вот в том-то и дело, что у меня не получается просмотреть данные главной страницы в формате .xml, так как http://temp03.web-image.ru/main.xml открывает пустую страницу (то есть ошибка 404 по факту) и следственно перенаправляет  на главную страницу сайта...
 

Попробуйте http://temp03.web-image.ru/.xml
Ускорение сайта на UMI.CMS - http://speed.umispec.ru/