ИС вывод списка и информации на одной странице

#
ИС вывод списка и информации на одной странице
Здравсвуйте. Подскажите пожалуйста. Такая ситуация.
Нужно на одной странице выводить и список элементов, и сразу информацию о выбранном? Т.к. имеется возможность выводить либо список, либо информацию, то решил использолвать модуль для вывода списка также для списка и информации о выбранном элементе.
Для этого мы на ссыле передаём параметр, что-то типа этого: /portfolio/group/?IdWork=75
Вот как этот параметр IdWork передать при следующей загрузке XSL шаблону?
Ведь мы вызываем его с помощью:
<?
   $kernel->show_current_page();
?>
Как в таком случае передать данный параметр в XML?
Спасибо
#
Re: ИС вывод списка и информации на одной странице
P.S. Можно как-нибудь из шаблона ИС вызывать вручную шаблон XSL? Просто если не использовать $kernel->show_current_page(); , то не формируется полный XML. =\
Модератор
#
Re: ИС вывод списка и информации на одной странице
DOG-Paul писал(а):
P.S. Можно как-нибудь из шаблона ИС вызывать вручную шаблон XSL?

XSL вызвать нельзя, XSL - это просто шаблон, нужны XML-данные, которые он будет обрабатывать. Этот XML генерируют различные методы нашей системы.
Например показ списка инфоэлементов осуществляется с помощью метода ShowInformationSystem() - описание метода дано в API:
                  <?
                  /* Вывод информационных систем */
                  $InformationSystem = & singleton('InformationSystem');

                  $external_propertys=array();
                  $external_propertys['ОтображатьСсылкуНаАрхив']=1;
                  $external_propertys['ОтображатьСсылкиНаСледующиеСтраницы']=0;

                  /* Количество выводимых элементов */
                  $item_count = 1;

                  $InformationSystemId = 1;

                  $InformationGroupId = 0;  // false - из всех групп, 0 - из корневой группы

                  $InformationSystem->ShowInformationSystem($InformationSystemId, $InformationGroupId,'СписокЭлементовИнфосистемы',$item_count,0,$external_propertys);
                  ?>


Показ одного инфоэлемента осуществляется с помощью метода ShowInformationSystemItem() - описание метода дано в API.
#
Re: ИС вывод списка и информации на одной странице
Ну я вот так сделал! Это правильное решение:


<?
// Выводим список групп
   $InformationSystemParts = new InformationSystem();
   $external_propertys = array();
   //
   $InformationSystem_id = $InformationSystemParts ->GetInformationSystemByStructureId(CURRENT_STRUCTURE_ID);
   if ($InformationSystem_id) {
      $result = $InformationSystemParts ->GetInformationFromPath($InformationSystem_id, '',false);
      $groupOpen = $result['group'];
      $external_propertys['OpenGroup'] = $groupOpen;
   }
   $InformationSystemParts ->ShowInformationSystem(11,false,'СписокРазделовПортфолио', 0, 0, $external_propertys);
// Оперделяем id октрытого элемента, если нет, то берём первый элемент из списка
   if (isset($_GET["IdWork"])) {
      $workOpen = $_GET["IdWork"];
   } else {
      $InformationSystem = new InformationSystem();
      $result = $InformationSystem->GetInformationItemsFromGroup($groupOpen, 11);
      $item = mysql_fetch_array($result);
      $workOpen = $item["information_items_id"];
   }
// Выводим информацию об одно элементе
   $InformationSystemWork = new InformationSystem();
   $InformationSystemWork->ShowInformationSystemItem($workOpen, 'РаботаПортфолио');
// Выводим список элементов
   $InformationSystemWorks = new InformationSystem();
   $external_propertys = array();
   $external_propertys['OpenWork'] = $workOpen;
   $InformationSystemWorks ->ShowInformationSystem(11, $groupOpen, 'СписокРаботПортфолио', 99999, 0, $external_propertys);
?>
Модератор
#
Re: ИС вывод списка и информации на одной странице
DOG-Paul,
На первый взгляд в общем нормально, только пара советов:

  • Не плодите объекты InformationSystem, создайте один сверху и используйте его.
  • Приводите к ожидаемому типу внешние данные.
    Вместо
    $workOpen = $_GET["IdWork"];

    лучше написать:
    $workOpen = to_int($_GET["IdWork"]);

Авторизация