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

Модератор
#
Re: Вывод из одного шаблона несколько информационных систем.
gbisp,
XSL-шаблон — это оформление для данных, выбранных в XML, вы не можете там выбирать то, что в XML отсутствует.
Именно поэтому, в первом же ответе, вам было предложено в хуке выбрать нужные элементы и добавить их в XML, а затем уже там выводить.
#
Re: Вывод из одного шаблона несколько информационных систем.
Итак. Проблему решил.
Проблема. Есть ИС. В дополнительном свойстве ИС задан id группы ИС (ИС2), в котором приведены варианты данной товарной карточки. Необходимо при отображении карточки товара вывести таблицу с вариантами из ИС2. Также в доп. свойствах ИС есть флаг, который меняет формат выдачи таблицы ИС2.

В настройках типовой динамической страницы:
В секции
if ($Informationsystem_Controller_Show->item)
{


добавляем

//получаем id из дополнительного свойства ИС товара с таблицей характеристик
$linkedObject = Core_Entity::factory('Informationsystem_Item_Property_List', $oInformationsystem->id);   
$aProperties = $linkedObject->Properties->findAll();
$aProperty_Dirs = $linkedObject->Property_Dirs->findAll();
$oProperty = Core_Entity::factory('Property', $aProperties[0]->id);
$aPropertyValues = $oProperty->getValues($oInformationsystem_Item->id);
$table='';
if ($aPropertyValues[0]->value <> '0') {
   //получаем флаг сокращения таблицы из характеристик
   $oProperty = Core_Entity::factory('Property', $aProperties[1]->id);
   $aPropertyValues1 = $oProperty->getValues($oInformationsystem_Item->id);
   //получить все элемены группы ИС
   $oInformationsystem_new = Core_Entity::factory('Informationsystem_Group', $aPropertyValues[0]->value);
   $aInformationsystem_Items_new = $oInformationsystem_new->Informationsystem_Items->findAll();
   //заполняем таблицу
   $table .='<div class="row">';

   if ($aPropertyValues1[0]->value == '0'){
   // полный вариант заголовка таблицы

   }else{
   //краткий вариант заголовка таблицы
   }
   foreach ($aInformationsystem_Items_new as $oInformationsystem_Item_new)
   {
      //получаем данные таблицы
      $array = explode(':', $oInformationsystem_Item_new->description);
//работаем с данными таблицы в полном варианте отображения
      }else{
//работаем с данными таблицы в кратком варианте отображения
      }
   }
   $table .='</tbody></table></div>';
}
//передаем параметр в шаблон
$Informationsystem_Controller_Show->addEntity(
   Core::factory('Core_Xml_Entity')->name('tovar_table')->value($table)
);


В шаблоне вывода элемента:
   
<!-- вывод таблицы товаров в шаблоне -->
   <xsl:value-of disable-output-escaping="yes" select="/informationsystem/tovar_table"/>
Авторизация