В PHP-шаблонизаторе макрос не используется.
Контент страницы можно получить с помощью объекта страницы. Пример:
$content = $page->getValue('content');
В XSLT-шаблонизаторе существует в виде метода content
модуля "Структура" и может принимать параметр — id
страницы.
Использование этого метода в запросах UData в XSLT-шаблонизаторе лишено смысла, так как для любых страниц контента содержимое поля content
уже находится в ответе UMI Data (см. «Формат UMI Data») в элементе value
ветки property
с атрибутом name="content"
.
Подсказка
Содержимое этого поля для любой страницы контента можно также получить при помощи протокола UPage (см. «Страницы: протокол UPage»), добавив .content
в конец запроса.
Страницы сайта, не являющиеся страницами контента (например, страницы лент новостей) могут не содержать ветки <property ... name="content">
в ответе UMI Data. Вывод данных на таких страницах должен определяться в хslt-шаблонах, которые можно применить, например, при помощи правил соответствия вида match="result[@module = 'имя_модуля'][@method = 'имя_метода']"
.
Подсказка
На самом деле, этим способом мы можем решить задачу вывода содержимого всех страниц сайта, в том числе и контентных.
Например, если в шаблоне разметки страниц стоит следующая инструкция:
<div id="page">
...
<div id="content">
<xsl:apply-templates select="result" />
</div>
...
</div>
То мы можем также обрабатывать все страницы контента, задав соответствие match="result[@module = 'content'][@method = 'content']"
.
Например, так:
<xsl:template match="result[@module = 'content'][@method = 'content']">
<h1>
<xsl:value-of select=".//property[@name = 'h1']/value" />
</h1>
<div id="text">
<xsl:value-of select=".//property[@name = 'content']/value" disable-output-escaping="yes" />
</div>
</xsl:template>
Таким образом, на всех страницах контента будет выводиться заголовок и содержимое поля "контент".
Значение атрибута disable-output-escaping="yes"
отменяет экранирование HTML-тегов при выводе.
В ТPL-шаблонизаторе выводит содержание (контент) страницы в зависимости от того, какого типа эта страница. Система сама определяет, как необходимо обработать текущую страницу, и какие шаблоны необходимо применить.
Например, для страницы контента вставляется содержимое поля визуального редактора, а для новостной ленты - список новостей этой ленты.
Подробнее, о том, как определяется содержимое и его оформление можно прочитать в разделе «Вывод страницы в браузер» главы, посвященной TPL-шаблонизатору.