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

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

*

izen29

  • *
  • 13
  • +0/-0
    • Просмотр профиля
вывод всех сообщений в теме форума
« : 13 Февраля 2013, 18:46:25 »
Здравствуйте!

Стоит задача написать вывод всех сообщений в определенной теме форума.
Нашел http://dev.docs.umi-cms.ru/spravochnik_makrosov_umicms/forum/forum_topic/ - вот это, но работает только для "текущей" темы.
можно как то по аналогии сделать забор всех сообщений из любой темы по обращению через айди темы?

*

admin

  • *****
  • 2444
  • +172/-1
    • Просмотр профиля
Re:вывод всех сообщений в теме форума
« Ответ #1 : 13 Февраля 2013, 21:57:41 »
не помню, по функциям модуля форума, но usel однозначно вам поможет, если не найдете нужного функционала в forum модуле

*

Rodogor

  • ***
  • 189
  • +24/-0
    • Просмотр профиля
Re:вывод всех сообщений в теме форума
« Ответ #2 : 13 Февраля 2013, 23:15:01 »
Ты всё никак не угомонишься. Пока не поздно - пойми, UMI как коробочная  CMS с трудом-с трудом, а что бы как движок форума использовать - тем более..
Вкурить-то можно, но оно того наверное не стоит. Я вот вроде где-то что-то понял, да и мне даже нравится, но мне и на ВАЗе ездить нравится, а чинить его - вобще в радость.

Вообщем можно пойти несколькими путями, в зависимости от навыка:
1. Простой уровень. Использовать выборки USEL.
Тут вроде всё просто, правда я когда читал и не знал как делать - мне было не просто и не понятно.
Описалово usel - http://dev.docs.umi-cms.ru/shablony_i_makrosy/xslt-shablonizator_umi_cms/vyborki_iz_bd_protokol_usel/
Грубо говоря - тут в сжатой форме говоришь ЧТО НАДО, ОТКУДА и СКОЛЬКО.

В данный момент твои условия
1) тип данных - сообщения форума
2) выбрать из конкретной темы
Тему допустим будем передавать параметром.
<?xml version="1.0" encoding="utf-8"?>
<selection>
<target result="pages">
<type module="forum" method="topic" />
<category>{1}</category>
</target>

</selection>
Откуда взяли <type module="forum" method="topic" /> - зашли в сообщение, дописали .xml. Посмотрели первую строчку result. Если дальше разбираться будешь - поймёшь как это формируется (это на самом деле имя класса/модуля и имя метода/макроса).

В usel можно передавать любое количество параметров, они будут под номерами - {1} {2} {3} и т.п...
Это кодэ сохраняешь в файло к примеру topic.xml. Кидаешь в папку usels.
Вызываешь usel://topic/666 , где 666 - id топика. Получаешь список сообщений... Далее уже пишешь шаблон, применяешь его.... Эту часть опущу....

2. Средний уровень. Перепиливаешь макрос forum_topic
Там применяется всё для текущей странице, вот такой строчкой
$element_id = cmsController::getInstance()->getCurrentElementId();
Задача - передать $element_id параметром в функцию, да и всё...
Нюанс - если это локалпак, то кодэ будет закрыт и это не увидишь
3. Сложный уровень. Написать выборку самому на API с UmiSelection или Selector. Всё то же самое, что и для п.1 только синтаксис другой. Почитать можно тут http://api.docs.umi-cms.ru/spravochnik_po_klassam_yadra_umicms/vyborki/
Там много где про выборки описывается, почему-то не в одном месте..