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

#
Re: Вывод информационных элементов из нескольких информационных систем
Решил вопрос так:
В ТДС
if (Core::moduleIsActive('informationsystem')) {

    $Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
        Core_Entity::factory('Informationsystem')
    );

    $oInfosys = Core_Entity::factory('Informationsystem');
    $oInfosys->queryBuilder()
        ->where('informationsystem_dir_id', '=', 1);
    $oInfosys = $oInfosys->findAll();

    // XML-сущность, к которой будут добавляться ИС
    $oInfosysXmlEntity = Core::factory('Core_Xml_Entity')->name('infosys');

    // Добавляем XML-сущность контроллеру показа
    $Informationsystem_Controller_Show->addEntity($oInfosysXmlEntity);

    foreach ($oInfosys as $aInfosys) {
        // Добавляем ИС потомком XML-сущности
        $oInfosysXmlEntity->addEntity(
            $aInfosys->clearEntities()
        );
    }

    $oItems = Core_Entity::factory('informationsystem_item');
    $oItems->queryBuilder()
        ->where('informationsystem_id', 'IN', array(1, 2, 3, 4, 5));
    $aoItems = $oItems->findAll();
    foreach ($aoItems as $oItems) {
        $Informationsystem_Controller_Show->addEntity($oItems);
    }

    $Informationsystem_Controller_Show->xsl(
        Core_Entity::factory('Xsl')->getByName('СписокУслуг')
    )
        ->groupsMode('none')
        ->show();

}

В XSL
<xsl:template match="/">
        <div>
            <xsl:for-each select="/informationsystem/infosys/informationsystem">
                <xsl:variable name="infosys_id" select="@id"/>
                <div class="item-elem">
                    <a href="{url}">
                        <xsl:value-of disable-output-escaping="yes" select="name"/>
                    </a>
                </div>
                <ul class="info_block">
                    <xsl:apply-templates select="/informationsystem/informationsystem_item[informationsystem_id = $infosys_id]"/>
                </ul>
            </xsl:for-each>
        </div>

    </xsl:template>
    <xsl:template match="informationsystem_item">
        <li>
            <a href="{url}" hostcms:id="{@id}" hostcms:field="name" hostcms:entity="informationsystem_item">
                <xsl:value-of disable-output-escaping="yes" select="name"/>
            </a>
        </li>
    </xsl:template>
E-mail: info@syrbek.ru / телега: @syrbek /skype: activexm / syrbek.ru / Поддержка сайтов / г. Москва [HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, Git, SVN, Redmine]
#
Re: Вывод информационных элементов из нескольких информационных систем
Вот такой вариант придумал

      $Informationsystem_Controller_Show = new Informationsystem_Controller_Show(
          Core_Entity::factory('Informationsystem')
       );

      $Informationsystem_Controller_Show->informationsystemItems()
         ->queryBuilder()
         ->clear()
         ->where('informationsystem_id', 'IN', array(1, 2));
   
      $Informationsystem_Controller_Show->xsl(
          Core_Entity::factory('Xsl')->getByName('СписокУслуг')
      )
      ->limit(10)
      ->group(FALSE)      
        ->groupsMode('none')
        ->show();
HostDev.pw - модули для HostCMS, Telegram: @hostdev
#
Re: Вывод информационных элементов из нескольких информационных систем
EugenyP,
и опять же, как уже писал неоднократно ))
Цитата:
а если например в одну информационную систему всегда добавляют больше свежих записей, ну предположим 10, а в другие только 1 свежую
то в базе идут 10 подряд элементов с informationsystem_id = 1? тогда он будет выводить всегда только ее элементы


нужно в цикле по каждой информационной системе проходить и искать по 5 свежих записей, добавлять их в массив и уже потом этот массив доавблять Informationsystem_Controller_Show через addEntities
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
Авторизация