UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: agata от 13 Марта 2012, 14:45:18

Название: Вывод последних постов блога
Отправлено: agata от 13 Марта 2012, 14:45:18
Здравствуйте!

На сайте заведены несколько блогов.
Один из блогов вынесен "в отдельный раздел" сайта, к примеру "Блог".
Остальные собраны вместе в один (но другой) раздел, к примеру "Публикации". В разделе "Публикации" выводятся пять свежих постов из всего списка постов всех блогов -
<xsl:apply-templates select="document('udata://blogs20/postsList//void/5/')//item" mode="last-post" />

Как из этого списка исключить показ постов раздела Блог?
Иными простыми словами, как выводить список последних постов из всех блогов, за исключением одного?
Название: Re:Вывод последних постов блога
Отправлено: agata от 14 Марта 2012, 14:52:16
Или иначе, как добавить ID блогов, посты которых нужно вывести? И где можно узнать ID блога?
Название: Re:Вывод последних постов блога
Отправлено: Alexey от 15 Марта 2012, 07:33:22
С XSLT не работал, но могу посоветовать попробовать по аналогии с выводом списка последних новостей (news lastlist). Там предлагается 2 варианта оформления:

1. <xsl:apply-templates select="document(concat('udata://news/lastlist/', '(id1)', '(id2)', '//10/0'))/udata"/>
2. <xsl:apply-templates select="document(concat('udata://news/lastlist/', '(id1)(id2)', '//10/0'))/udata"/>

id1, id2 и т.д. - перечисляете ID всех блогов, откуда нужно вывести посты (ID того блога, который нужно исключить, естественно не указываете).

А вот где применительно к блогам перечислять ID и как это адаптировать к другому синтаксису - к сожалению, не знаю. Да и вообще прокатит ли такое с блогами, т.е. допустимо ли там указывать более одного блога - не до конца ясно, но попробовать в любом случае стоит.

ID самих блогов можно посмотреть в ссылке на редактирование (.../admin/blogs20/edit/ID/).
Название: Re:Вывод последних постов блога
Отправлено: agata от 15 Марта 2012, 09:18:59
Alexey, спасибо. Есть куда пробовать. Пока получается так. Если написать
<xsl:apply-templates select="document(concat('udata://blogs20/postsList/','(45)(46)','/void/5/'))//item" mode="last-post" />

или вторым способом, то выводятся посты только из первого блога (с Id=45).
Название: Re:Вывод последних постов блога
Отправлено: Alexey от 15 Марта 2012, 10:37:20
agata, если я Вас правильно понял, посты при любом из двух приведенных вариантов выводятся только из первого указанного блога из перечисленных. Если так, то получается, что данный макрос не предусматривает указание в параметрах более чем 1 блога, или используемая запись некорректна. Может стоить попробовать производить выборку для каждого блога по отдельности и потом их объединять и сортировать результаты как необходимо. Или поместить все блоги которые нужно выводить в 1 общий раздел, и указать его ID.
Название: Re:Вывод последних постов блога
Отправлено: Alexey от 15 Марта 2012, 11:14:46
В случае, если передается только 1 ID блога и остальные варианты реализовать нельзя по каким-либо причинам, можно кастомизировать нужным образом функцию postsList.
Название: Re:Вывод последних постов блога
Отправлено: agata от 15 Марта 2012, 12:25:11
Боюсь, что мои знаний совсем недостаточно, чтобы справиться с этим :-)
Название: Re:Вывод последних постов блога
Отправлено: admin от 17 Марта 2012, 01:41:21
я все же советовал бы посмотреть в сторону usel протокола, он прекрасно справляется в выборками такого типа