Логотип

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

В 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-шаблонизатору.

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

В шаблоне дизайна, впишите в место, где должен выводиться контент страницы макрос:

%content%

Название

%content% — Выводит содержание (контент) страницы.

Описание

Является сокращенной записью макроса %content content()%. Используется в TPL-шаблонизаторе для указания места, где будет выведен контент страницы.

Дополнительные сведения