Solution Technologies
Управление сайтом без ограничений

XS2 Online

Все о разработке проектов
на базе платформы XS2 Framework

Функции XS2 API

xs2GetChildren :: Дочерние объекты

  • Доступна в шаблоне
  • Доступна в процессоре

Эта функция возвращает из модуля mod в виде массива набор объектов, дочерних для объекта с идентификатором ParId. Результат можно ограничить объектами типа NType и условием condition в синтаксисе SQL. Набор полей определяется параметром fields, а сортировка результата задается параметром sort. При вызове из шаблона (Smarty) результат оказывается в переменной с именем, которое задано в параметре var.

Пример 347 :: Получение дочерних объектов
<?php
  $category = xs2GetChildren(array('ParId' => 4));
?>

Зная идентификатор NodId категории мы получили в переменную $category список содержащихся в ней объектов.

Значения NType объектов могут различаться, так как дочерние объекты могут быть разнотипными:

Array(
  Array(
    [NodId] => 19
    [NName] => Ron Jeremy
    [ParId] => 4
    [NType] => people
    [year] => 1953
    [sex] => m
    ...
  )
  Array(
    [NodId] => 67
    [NName] => Tawny Stone
    [ParId] => 4
    [NType] => people
    [year] => 1982
    [sex] => f
    ...
  )
  Array(
    [NodId] => 112
    [NName] => Lightspeed Media Corporation
    [ParId] => 4
    [NType] => company
    [year] => NULL
    [sex] => NULL
    ...
  )
  ...
)

Теперь можно передать этот список в шаблон, чтобы вывести его на странице:

<?php
  $_HTML->assign('category', $category);
?>

Набор полей в разных типах может различаться (у объектов people в примере есть поля year и sex, которые отсутствуют у объектов типа company, а значит отображать их не нужно:

{foreach from=$category item="object"}
  {$object.NType} - {$object.NName}
  {if $object.year}
    ({$object.year})
  {/if}
  <br />
{/foreach}

Пример 352 :: Ограничения при выборках

Можно ограничить выборку из предыдущего примера по типу объктов, полу и, например, возрасту. Порядок ключей в массиве-параметре не важен:

<?php
  $people =
    xs2GetChildren(array(
      'condition' => "year>1980 AND sex='f'",
      'ParId' = 4,
      'NType' => 'people'));
?>

Результат помещается в переменную $people — данные только о девушках (sex="f") младше 25 лет.

Пример 354 :: Запрос с параметрами из окружения

Допустим, запрошена страница http://www.xs2.ru/base/job/list/4.htm. Это значит, что в модуле base у типа объектов job запрошен метод list с параметром 4, который доступен в шаблоне (Smarty) через переменную $_THE.PARAMS[0].

{xs2GetChildren
  var = "group"
  ParId = $_THE.PARAMS[0]
  NType = $_THE.QUE.OBJ
  sort = "NName"}
То есть из модуля base в переменную $group получены, упорядоченные параметром sort по алфавиту, профессии (объекты типа job — его значение взято из переменной окружения $_THE.QUE), идентификатор родительского объекта которых ParId получен из запроса ($_THE.PARAMS), например:
Аппаратчик по насасыванию диафрагм
Бригадир двора изложниц
Вздымщик
Гибщик труб
Демонстратор пластических поз
Завивальщик спиралей
Испытатель бумажных мешков
Коксоочиститель
Лакировщик глобусов
Монтажник позитива
Наполнитель приборов жидкостями
Обрезчик анатомического материала
Путевой рабочий на озере
Регулировщик хвостового хозяйства
Слесарь-испытатель
Травильщик стекла плавиковой кислотой
{xs2GetChildren
  var = "group"
  ParId = $_THE.PARAMS[0]
  NType = $_THE.QUE.OBJ
  sort = "NName"
  limit = 5}

Аналогичный запрос с параметром limit ограничит количество возвращенных узлов первыми пятью:

Аппаратчик по насасыванию диафрагм
Бригадир двора изложниц
Вздымщик
Гибщик труб
Демонстратор пластических поз

Параметры

ParId (int)
Идентификатор родительского, по отношению к запрашиваемым, объекта.
Обязательный параметр
По умолчанию: 1
NType (string)
Тип возвращаемого объекта
condition (string)
Дополнительное условие отбора (синтаксис SQL)
По умолчанию: пустое условие
fields (mixed)
Какие поля объекта возвращать
По умолчанию: 3
Варианты параметра:
  • int=1 - только общие поля объектов
  • int=2 - только дополнительные поля
  • int=3 - все поля
  • string - Список названий полей через запятую. Несуществующие в типе поля игнорируются.
  • array - Массив названий полей. Несуществующие в типе поля игнорируются.
  • linkDetail (mixed)
    Какие поля связанных объектов возвращать
    По умолчанию: 3
    Варианты параметра:
  • int=1 - только общие поля объектов
  • int=2 - только дополнительные поля
  • int=3 - все поля
  • string - список названий полей через запятую. Несуществующие в типе поля игнорируются.
  • array - массив названий полей. Несуществующие в типе поля игнорируются.
  • sort (string)
    Список полей, по которым сортируется набор.
    limit (int)
    Ограничивает количество возвращаемых узлов.
    mod (string)
    Имя модуля, на котором выполняется функция
    По умолчанию: текущий модуль
    prj (string)
    Имя проекта, на котором произволятся действия. Возможность существует при условии, что у указанного проекта разрешен экспорт данных и текущий проект указан среди «доверенных проектов»
    По умолчанию: текущий проект
    var (string)
    Название переменной, в которую будет возвращен результат работы функции
    Используется только в шаблоне

    Смотри также

    Эта функция возвращает из модуля mod в виде массива упорядоченный набор объектов, являющихся потомками для объекта с идентификатором ParId ....
    Эта функция возвращает из модуля mod в виде массива набор объектов, дочерних для объекта с идентификатором ParId . Результат можно ограничить...
    Эта функция возвращает из модуля mod в виде массива набор объектов, являющихся потомками для объекта с идентификатором NodId . Результат можно...
    Эта функция возвращает объекты типа NType из модулей, определяемых параметром mods , у которых в виртуальном поле lnkField есть ссылка на...
    Эта функция возвращает набор объектов модуля mod в виде массива. Каждый его элемент в свою очередь представляет собой ассоциативный массив полей...
    Эта функция возвращает «цепочку» (путь в дереве) объектов из модуля mod начиная с объекта с идентификатором rootId (НЕ включая его...
    Copyright ©1998-2009 Солютекс. Все права защищены.
    Этот сайт сделан в designLab | Работает на технологии XS2
    Условия использования | О защите конфиденциальности