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

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

*

agata

  • *
  • 6
  • +0/-0
    • Просмотр профиля
Вывод последних постов блога
« : 13 Марта 2012, 14:45:18 »
Здравствуйте!

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

Как из этого списка исключить показ постов раздела Блог?
Иными простыми словами, как выводить список последних постов из всех блогов, за исключением одного?

*

agata

  • *
  • 6
  • +0/-0
    • Просмотр профиля
Re:Вывод последних постов блога
« Ответ #1 : 14 Марта 2012, 14:52:16 »
Или иначе, как добавить ID блогов, посты которых нужно вывести? И где можно узнать ID блога?

*

Alexey

  • *
  • 42
  • +3/-0
    • Просмотр профиля
Re:Вывод последних постов блога
« Ответ #2 : 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/).
« Последнее редактирование: 15 Марта 2012, 10:31:09 от Alexey »

*

agata

  • *
  • 6
  • +0/-0
    • Просмотр профиля
Re:Вывод последних постов блога
« Ответ #3 : 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).

*

Alexey

  • *
  • 42
  • +3/-0
    • Просмотр профиля
Re:Вывод последних постов блога
« Ответ #4 : 15 Марта 2012, 10:37:20 »
agata, если я Вас правильно понял, посты при любом из двух приведенных вариантов выводятся только из первого указанного блога из перечисленных. Если так, то получается, что данный макрос не предусматривает указание в параметрах более чем 1 блога, или используемая запись некорректна. Может стоить попробовать производить выборку для каждого блога по отдельности и потом их объединять и сортировать результаты как необходимо. Или поместить все блоги которые нужно выводить в 1 общий раздел, и указать его ID.
« Последнее редактирование: 15 Марта 2012, 11:09:09 от Alexey »

*

Alexey

  • *
  • 42
  • +3/-0
    • Просмотр профиля
Re:Вывод последних постов блога
« Ответ #5 : 15 Марта 2012, 11:14:46 »
В случае, если передается только 1 ID блога и остальные варианты реализовать нельзя по каким-либо причинам, можно кастомизировать нужным образом функцию postsList.

*

agata

  • *
  • 6
  • +0/-0
    • Просмотр профиля
Re:Вывод последних постов блога
« Ответ #6 : 15 Марта 2012, 12:25:11 »
Боюсь, что мои знаний совсем недостаточно, чтобы справиться с этим :-)

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:Вывод последних постов блога
« Ответ #7 : 17 Марта 2012, 01:41:21 »
я все же советовал бы посмотреть в сторону usel протокола, он прекрасно справляется в выборками такого типа