Оглавление

xs2GetNode

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

Параметры

int NodId

Идентификатор получаемого объекта

Обязательный параметр.

string NType

Тип возвращаемого объекта.

mixed fields

Какие поля объекта возвращать

Значение по умолчанию: 3.

Варианты параметра:

int = 1
только общие поля объектов
int = 2
только дополнительные поля
int = 3
все поля

Значение по умолчанию.

string
Список названий полей через запятую. Несуществующие в типе поля игнорируются.
array
Массив названий полей. Несуществующие в типе поля игнорируются.

mixed linkDetail

Какие поля связанных объектов возвращать

Значение по умолчанию: 3.

Варианты параметра:

int = 1
только общие поля объектов
int = 2
только дополнительные поля
int = 3
все поля

Значение по умолчанию.

string
список названий полей через запятую. Несуществующие в типе поля игнорируются.
array
массив названий полей. Несуществующие в типе поля игнорируются.

string mod

Название модуля. См. также http://lib.solutecs.com/api/concept/show/438.htm

Значение по умолчанию: текущий модуль.

string var

Название переменной, в которую возвращается результат

Используется только в шаблоне.

Примеры

Пример 10

Когда запрошена страница проекта по адресу http://www.quickie.ru/shop/basket/show/8.7.htm, это означает, что в модуле shop вызывается метод show, относящийся к типу basket, и ему переданы параметры 8 и 7. Смысловую нагрузку, порядок и параметров разработчик выбирает сам. Запрошенный модуль автоматически становится текущим. Если во втором параметре ожидается идентификатор объекта, то из процессора (PHP) получить данные об остальных его полях можно так:
<?php
    $id = $_THE['PARAMS'][1];
    $object = xs2GetNode(array('NodId' => $id));
    $_HTML->assign('object', $object);
?>
Тот же запрос в шаблоне Smarty выглядит так:
{xs2GetNode
    var = "object"
    NodId = $_THE.PARAMS[1]}
Или так, с простой проверкой соответствия ожидаемого типа фактическому типу объекта:
{xs2GetNode
    var = "object"
    NodId = $_THE.PARAMS[1]
    NType = "basket"}
Если явно задать значение параметра NType, а объект с NodId равным 7 на самом деле не относится к типу "basket", то такой запрос не вернет информацию об объекте.

Пример 11

Задание дополнительного параметра mod позволяет запрашивать объекты из модулей, отличающихся от текущего (запрошенного):
{xs2GetNode
     var = "basket"
     NodId = $_THE.PARAMS[1]
     NType = "basket"
     mod = "shop"}    
То есть метод может запрашивать данные из любого модуля проекта. Когда метод привязан не к типу объектов или к модулю, а ко всему проекту, адрес его страницы будет выглядеть, как, http://www.quickie.ru/show, а его вызов с параметрами, например, так: http://www.quickie.ru/show/8.7.htm. В таком случае указывать модуль (mod) необходимо, так как текущий модуль не установлен.
<h1>{$basket.NName}</h1>
{foreach from=$basket.items item="it"}
    <p>
        {$it.NName}. {$it.Price}
    </p>
{/foreach}
Так можно вывести состав "корзины" в модуле "магазин" (shop), если в виртуальном поле items объектов типа "корзина" (basket) хранятся описания товара, а в поле Price у каждого товара в свою очередь записана его цена.