Вывод информационных элементов из нескольких информационных систем

#
Вывод информационных элементов из нескольких информационных систем
Подскажите можно ли реализовать вывод в один блок например "Недавно добавленные" элементов из разных информационных систем: Новости, Статьи, Обзоры
#
Re: Вывод информационных элементов из нескольких информационных систем
Для одной выводим так:
<span class="right_title">Недавно добавленные</span>
                <?php
      // Новости
      if (Core::moduleIsActive('informationsystem'))
      {
         $Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
            Core_Entity::factory('Informationsystem', 15)
         );
         $Informationsystem_Controller_Show
            ->xsl(
               Core_Entity::factory('Xsl')->getByName('НедавноДобавленные')
            )
            ->groupsMode('none')
            ->itemsForbiddenTags(array('text'))
            ->group(FALSE)
            ->limit(5)
            ->show();
      }
?>


А если нужно вывести последние 5-10 из разных например 15,16,17 Информационных системы сортируя по дате добавления.
т.е:
Новость 3 дата 01.12.13 (10.00) id 15
Статья 2 дата 01.12.13 (09.59)id 16
Новость 2 дата 01.11.13 (09.58) id 15
Обзор 1 дата 01.11.13 (08.00)id 17
Статья 1 дата 01.12.13 (08.59)id 16
Новость 1 дата 01.12.13 (08.58) id 15
#
Re: Вывод информационных элементов из нескольких информационных систем
Подскажите решение этого вопроса.
#
Re: Вывод информационных элементов из нескольких информационных систем
Интересная задача. Я бы это не делал через $Informationsystem_Controller_Show , ибо ему даже ->show() не сделать, он все url поковеркает. Да он просто не предназначен для этого.

ИМХО, тут нужно извращаться. Или я просто не знаю правильного способа.
Написал от дуба, так как просто под рукой нет сайта, на котором мог бы проверить.


$oInformationsystem_Item = Core_Entity::factory('Informationsystem_Item');
$oInformationsystem_Item->queryBuilder()
         ->where('informationsystem_id', '=', 15)
         ->setOr()
         ->where('informationsystem_id', '=', 16)
         ->setOr()
         ->where('informationsystem_id', '=', 17)
         ->clearOrderBy()
         ->orderBy('datetime')
         ->limit(5);
         
$aItems = $oInformationsystem_Item->findAll();

$xml = '';
foreach ($aItems as $oItem)
   $xml .= $oItem->getXML();

$html = Xsl_Processor::instance()
         ->xml($xml)
         ->xsl( Core_Entity::factory('Xsl')->getByName('НедавноДобавленные') )
         ->process();

echo $html;


Нужно будет еще поработать с XSL-кой, ибо XML будет отличаться. Напишите о результатах.
#
Re: Вывод информационных элементов из нескольких информационных систем
Поправка.
->orderBy('datetime')

заменить на:
->orderBy('datetime', 'DESC')

чтобы по убыванию сортировало.
#
Re: Вывод информационных элементов из нескольких информационных систем
Levsha,
а если например в новости всегда добавляют больше свежих записей, ну предположим 5, а в статьи только 1 свежую

то в базе идут 5 подряд элементов с informationsystem_id = 15? тогда он будет выводить всегда только новости
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Вывод информационных элементов из нескольких информационных систем
Цитата:
Нужно будет еще поработать с XSL-кой, ибо XML будет отличаться. Напишите о результатах.

Может подскажете код в XSL ? Без него в результате пустота..
#
Re: Вывод информационных элементов из нескольких информационных систем
Дополню:

$oInformationsystem_Item = Core_Entity::factory('Informationsystem_Item');
$oInformationsystem_Item->queryBuilder()
         ->where('informationsystem_id', '=', 15)
         ->setOr()
         ->where('informationsystem_id', '=', 16)
         ->setOr()
         ->where('informationsystem_id', '=', 17)
         ->clearOrderBy()
         ->orderBy('datetime', 'DESC')
         ->limit(5);
        
$aItems = $oInformationsystem_Item->findAll();

$xml = '';
foreach ($aItems as $oItem)
   $xml .= $oItem->getXML();

$html = Xsl_Processor::instance()
         ->xml('<items>' .$xml. '</items>')
         ->xsl( Core_Entity::factory('Xsl')->getByName('НедавноДобавленные') )
         ->process();

echo $html;
#
Re: Вывод информационных элементов из нескольких информационных систем
Asl,
$oInformationsystem_Item = Core_Entity::factory('Informationsystem_Item');
$oInformationsystem_Item->queryBuilder()
         ->where('informationsystem_id', 'IN', array(15,16,17))
         ->clearOrderBy()
         ->orderBy('datetime', 'DESC')
         ->limit(5);
        
$aItems = $oInformationsystem_Item->findAll();


И опять же если например в новости всегда добавляют больше свежих записей, ну предположим 5, а в статьи только 1 свежую
то в базе идут 5 подряд элементов с informationsystem_id = 15? тогда он будет выводить всегда только новости
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Вывод информационных элементов из нескольких информационных систем
Я смотрю мы уже умеем вытаскивать определенные записи из таблицы informationsystem_items. У меня вопрос можем ли при этом также выводить их родители из таблицы informationsystem_items ?
Смотрю источник  пока не ясно как передать в XML
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
Авторизация