Вывод элементов из всех групп по доп.свойству в ИС

#
Вывод элементов из всех групп по доп.свойству в ИС
Помогите, пожалуйста, кто может!
Никак не могу решить, казалось бы, простой вопрос: мне надо из всех групп ИС вывести элементы с определенным доп.свойством. Вложенность групп - 3 и больше.
Фильтрацию по доп.свойству провожу в XSL:
<xsl:template match="blocks/items/item">
   <xsl:if test="item_propertys/item_property[@xml_name='action']/value!=''">
      ...далее код...
   </xsl:if>
</xsl:template>

Если выводить из всех групп, без этой фильтрации, все элементы выводятся. С ней - нет ни одного элемента. Когда в PHP-шаблоне указываю конкретную группу ( $InformationGroupId = 34 ), то элементы с этим доп.свойством выводятся. Как из всех групп вывести элементы с этим доп.свойством?
www.dsaleks.ru - создание сайтов и интернет-магазинов
Модератор
#
Re: Вывод элементов из всех групп по доп.свойству в ИС
Вам нужно не внутри blocks/items/item проводить ограничение, а снаружи при применении шаблона к blocks/items/item. Покажите вызов blocks/items/item
#
Re: Вывод элементов из всех групп по доп.свойству в ИС
<xsl:apply-templates select="blocks/items/item[item_status=1]"/>
www.dsaleks.ru - создание сайтов и интернет-магазинов
Модератор
#
Re: Вывод элементов из всех групп по доп.свойству в ИС
DS Aleks,
нужные элементы в XML есть? Если нет, то на PHP в качестве группы передайте false. Вызов template делайте следующим образом:
<xsl:apply-templates select="blocks/items/item[item_status=1][item_propertys/item_property[@xml_name='action']/value != '']"/>
#
Re: Вывод элементов из всех групп по доп.свойству в ИС
Я убрал фильтр из XSL и поставил его в вызове ИС:
<?php
/* Вывод информационных систем */
   $InformationSystem = & singleton('InformationSystem');

   $external_propertys=array();
   $external_propertys['ПоказыватьСсылкиНаДругиеСтраницы'] = 1;

   $property = array();
   $element['type'] = 1; // 0 - основное свойство, 1 - дополнительное
   $element['property_id'] = 3; // номер ID доп.свойства
   $element['prefix'] = ' AND ';
   $element['if'] = '!='; // условие которое должно выполняться
   $element['value'] = '';
   $element['sufix'] = "";
   $property['select'][] = $element;

   $InformationSystemId = 1;
   $InformationGroupsId = false; // false - из всех групп, 0 - из корневой группы
   $item_count = 100; // Количество выводимых элементов
   $InformationSystem->ShowInformationSystem($InformationSystemId,  $InformationGroupsId, 'СписокАкций', $item_count, 0, $external_propertys, $property);
?>

Так работает.
www.dsaleks.ru - создание сайтов и интернет-магазинов
#
Re: Re: Вывод элементов из всех групп по доп.свойству в ИС
А вот так у меня не выводятся элементы:
HostCMS писал(а):
нужные элементы в XML есть? Если нет, то на PHP в качестве группы передайте false. Вызов template делайте следующим образом:
<xsl:apply-templates select="blocks/items/item[item_status=1][item_propertys/item_property[@xml_name='action']/value != '']"/>
www.dsaleks.ru - создание сайтов и интернет-магазинов
Авторизация