Логотип

Документация по макросам и шаблонам UMI.CMS

data getPropertyGroupOfObject()

Название

%data getPropertyGroupOfObject()% — Выводит группу свойств объекта по определенному шаблону. Макрос используется для вывода свойств у объектов UMI.CMS, не имеющих представления в структуре, например, у пользователей или баннеров.

Параметры: data getPropertyGroupOfObject(object_id, group_name [, template = 'default'])

object_id

id объекта (пользователя, элемента справочника и т.д.), у которой необходимо вывести группу свойств.

group_name

Имя группы свойств.

template

Имя шаблона, по которому следует вывести группу свойств.

Описание

Этот макрос выводит группу свойств group_name, у объекта, указанного в параметре object_id. Вывод группы свойств осуществляется по шаблону, указанному в параметре template. Вы можете не указывать этот параметр, в этом случае для вывода свойства будет использован шаблон по умолчанию — default.tpl.

Макрос выводит все видимые поля в указанной группе по определенному блоку шаблона.

Использование лишено смысла. Любая группа свойств объекта может быть получена по протоколу UObject (см. «Объекты: протокол UObject»).

Мы можем описать шаблон вывода, например, следующим образом:

<xsl:template match="property">
  Название свойства: <xsl:value-of select="title" /><br/>
  Значение свойства: <xsl:value-of select="value" /><br/>
</xsl:template>

Предположим, нас интересует группа свойств idetntify_data для объекта с id="14". Тогда в том месте, где мы хотим отобразить список свойств, нужно будет задать инструкцию:

<xsl:apply-templates select="document('uobject://14')/udata/object/properties/group[@name = 'idetntify_data']/property" />

Используемые шаблоны

Макрос оперирует шаблонами, находящимися в каталоге /tpls/data/.

Используемые блоки шаблона

group

Выводит группу полей.

%title%

Название группы полей.

%name%

Идентификатор группы полей.

%lines%

Выводит все видимые поля в группе, используя блок шаблона group_line.

%template%

Шаблон, который используется для вывода группы полей.

group_line

Выводит отдельное видимое поле в группе полей. Обычно в это блоке указывается вызов макроса %data getProperty()%.

%id%

id объекта, группу полей которой вы выводите.

%prop_id%

Выводит числовой id текущего поля, который можно использовать для макроса %data getProperty()%.

%list-class-first%

в случае, если элемент первый, выводит "first"

%list-class-last%

в случае, если элемент последний, выводит "last"

%list-class-odd%

в случае, если элемент четный, выводит "odd"

%list-class-even%

в случае, если элемент нечетный, выводит "even"

%list-position%

вставляет порядковый номер в списке

Примеры использования

В поле HTML-редактор вставьте макрос: %data getPropertyGroupOfObject(%current_user_id%, 'short_info', 'sample')%.

В папке /tpls/data создайте файл sample.tpl, который содержит следующий пример:

<?php
$FORMS = Array();

$FORMS['group'] = <<<END
 <ul>
  %lines%
 </ul>
END;

$FORMS['group_line'] = <<<END
 <li>
  %data getPropertyOfObject('%id%', '%prop_id%', 'default')%
 </li>
END;

?>

Зайдите на страницу, которую вы отредактировали. Вы увидите все видимые поля из группы «short_info» («Краткая информация»: «Имя», «Фамилия», «Отчество») , которые были заполнены у текущего пользователя.