Логотип

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

data getPropertyGroup()

Название

%data getPropertyGroup()% — Выводит группу свойств страницы по определенному шаблону.

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

element_id

id страницы, у которой необходимо вывести группу свойств.

group_name

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

template

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

Описание

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

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

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

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

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

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

<xsl:apply-templates select="document('upage://13')/udata/page/properties/group[@name = 'common']/property" />

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

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

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

group

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

%title%

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

%name%

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

%lines%

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

%template%

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

group_line

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

%id%

id страницы, группу полей которой вы выводите.

%prop_id%

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

%prop%

Сокращенная запись макроса %data getProperty(%id%, %prop_id%)%. Шаблон для макроса будет использован тот, который был указан при вызове макроса %data getPropertyGroup()%.

%list-class-first%

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

%list-class-last%

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

%list-class-odd%

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

%list-class-even%

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

%list-position%

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

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

Зайдите в редактирование типа данных «Раздел сайта \ Страница контента». Добавьте новую группу полей «Тестовая группа полей» с идентификатором «test_property_group», а также поставьте галочку "Видимое".

Создайте в этой группе несколько новых полей.

Откройте для редактирования страницу контента. Внизу должна появится вкладка «Тестовая группа полей» с полями, которые вы только что создали. Заполните их любыми значениями.

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

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


<?php
$FORMS = Array();

$FORMS['group'] = <<<END
 %title%
 %lines%
 
END;

$FORMS['group_line'] = <<<END
  %prop%
END;

$FORMS['int'] = <<<END
%title%: %value%
END;

$FORMS['price'] = <<<END
%title%: %value%
END;

$FORMS['string'] = <<<END
%title%: %value%
END;

$FORMS['text'] = <<<END
%title%: %value%
END;

$FORMS['relation'] = <<<END
%title%: %value%
END;

$FORMS['date'] = <<<END
%title%: %value%
END;

?>

Зайдите на страницу, которую вы редактировали. Вы увидите все видимые поля, которые были заполнены.