среда, 23 февраля 2011 г.

Шаблоны: (2) Элементы рендеринга и функций

В шаблоне, который мы создали, используются специальные элементы C1. Для использования этих элементов необходимо указать соответствующие пространства имен XML, к которым они принадлежат. При создании нового шаблона эти и другие пространства имен добавляются автоматически.


<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://www.composite.net/ns/function/1.0"
xmlns:lang="http://www.composite.net/ns/localization/1.0"
xmlns:rendering="http://www.composite.net/ns/rendering/1.0"
xmlns:asp="http://www.composite.net/ns/asp.net/controls">

Минимум, вы будете использовать элементы функций и рендеринга, поэтому соответствующие пространства имен должны быть обязательно указаны в шаблоне.

xmlns:rendering="http://www.composite.net/ns/rendering/1.0"



Вы можете использовать следующие элементы этого пространства имен, последний из которых - самый важный:

<rendering:page.title />
<rendering:page.description />
<rendering:page.metatag.description />
<rendering:placeholder />

Когда вы создаете страницу, вы даете ей название, а также можете дать ее описание. На вкладке Настройки в редакторе страницы есть соответствующие поля:
  • Название страницы
  • Описание

При помощи элемента <rendering:page.title /> можно выводить на странице  значение поля Название страницы. (Имеет смысл помещать этот элемент между тегами <title></title> в шаблоне.)

Соответственно при помощи элемента <rendering:page.description /> можно выводить значение поля Описание.

А вот с помощью элемента <rendering:page.metatag.description /> (не путать с <rendering:page.description />) можно генерить такой элемент XHTML страницы как <meta/> по имени Description, автоматически указывая значение поля Описание страницы в качестве значения его атрибута content:

<meta name="Description" content="(здесь будет текст из поля Описание)"/>

Но самый важный элемент - это <rendering:placeholder /> (заполнитель). Наличие этого элемента в шаблоне дает возможность редактировать страницу, созданную на основе этого шаблона, на вкладке Контент редактора страницы.


Можете поэкспериментировать и закомментировать или удалить этот элемент из шаблона и открыть страницу на этом шаблоне в редакторе. Вкладка Контент не будет содержать редактируемую область.


Можно добавить не один, а несколько таких элементов, что даст возможность разделить редактируемые части страницы на логические единицы, придать структурность контенту страницы. Все такие элементы должны иметь уникальные идентификаторы.

У каждого элемента должен быть:
  • уникальный идентификатор (id)
  • название, которое появиться в редакторе страниц (title)
  • один из таких элементов должен быть выбран по умолчанию (default="true")

<rendering:placeholder id="contentplaceholder" title="Content" default="true" />
<rendering:placeholder id="rightpane" title="Right Pane" default="false" />

В редакторе страниц между этими заполнителями можно переключаться.


xmlns:f="http://www.composite.net/ns/function/1.0"

В этом пространстве имен содержатся элементы необходимые для добавления С1 функций: <f:function /> и <f:param />.

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

<f:function name="Composite.Pages.QuickSitemap" />

Если у функции есть параметры, которым нужно присвоить значения, то используется элемент <f:param /> в соответсвующих атрибутах которого указываются имя параметра (name) и его значение (value).

<f:function name="Composite.Media.FlashViewer">
  <f:param name="FlashFile" value="MediaArchive:b261615c-6d3d-488b-b402-75691cd4b8d5" />
  <f:param name="Width" value="300" />
  <f:param name="Height" value="200" />
</f:function>

Если значение параметра устанавливается при помощи другой (вложенной) функции, опять используется элемент <f:function/> внутри элемента параметра <f:param></f:param>.

<f:param name="Id">
  <f:function name="Composite.Utils.Guid.NewGuid" />
</f:param>

Но для шаблонов это не так важно знать, потому что вы скорее всего будет добавлять функции и присваивать значения их параметрам с помощью пункта меню Добавить | Код функции.


Далее мы рассмотрим элементы из двух других пространств имен: xmlns:asp="http://www.composite.net/ns/asp.net/controls" и xmlns:lang="http://www.composite.net/ns/localization/1.0", которые не попали в наш шаблон Simple.

Комментариев нет:

Отправить комментарий