Тэг widget
Полную форму шаблона можно увидеть, если скачать его на компьютер, или же в режиме, включаемом флажком «Расширить шаблоны виджета» на вкладке «Редактирование HTML».В полной форме тэг <b:widget> является парным, внутри которого помещается фактическое сожержимое виджета.
<b:widget [...attributes...]>
</b:widget>
Теперь рассмотрим, какие тэги шаблонизатора вы можете использовать внутри<b:widget>.Тэги includable и include
Содержимое виджета располагается в подключаемых сегментах, которые имеют следующий формат
<b:includable id='main' var='thiswidget'>
[подключаемое содержимое]
</b:includable>
Атрибуты тэга:- id — (обязательный) Уникальный идентификатор. (Из цифр и латинских букв.)
- var — (опциональный) Идентификатор для данных, адресуемых из содержимого сегмента. (См. ниже)
Созданные вами сегменты с различными идентификаторами не отображаются автоматически. Для подключения сегмента (из тела сегмента main или другого сегмента) используйте одиночный тэг <b:include/>. (Сегмент main всегда подключается автоматически.)
Атрибуты тэга b:include:
- name — (обязательный) Идентификатор подключаемого сегмента.
- data — (опциональный) Выражение, которое передается в сегмент как параметр. Значение данного выражения будет доступно из сегмента через переменную, указанную в его атрибуте var.
<b:includable id='main'>
<b:loop var='i' values='posts'>
<b:include name='post' data='i'/>
</b:loop> </b:includable>
<b:includable id='post' var='p'> Title: <data:p.title/> </b:includable>
Механизм подключаемых сегментов крайне полезен, если нужно в различных местах вставить вставить один и тот же код. Если такой необходимости не возникает, можно просто расположить весь код виджета в пределах одного сегмента main.Тэг data
При помощи данного тэга осуществляется вставка в тело страницы реального содержимого блога. Примеры использования data:
<data:title/>
<data:photo.url/>
Первый пример будет работать в большинстве виджетов, поскольку практически все виджеты имеют заголовок, содержащийся в переменной title. Во втором примере используется составная переменная, из котрой мы выбираем отдельный компонент. Скажем, в контексте виджета, отображающего профиль пользователя, переменная photo может иметь компоненты url, height и width. Cимвол "." означает, что мы выбираем компонент url переменной photo. Существует множество данных, которые вы можете получить при помощи тэга data, в зависимости от конкретного виджета.
Тэг loop
Тэг b:loop даёт возможность повторить фрагмент кода несколько раз с различными данными. Он используется чтобы вывести сообщения, комментарии к сообщению, метки сообщения и т.п. Тэг имеет следующий формат:
<b:loop var='identifier' values='set-of-data'>
[код, который будет повторяться в цикле]
</b:loop>
Атрибут var содержит имя переменной, в которой на каждой итерации цикла будет содержаться новая порция данных. Атрибут values содержит имя переменной, в которой находится список, перебор элементов которого будет производиться в цикле. Следующий пример кода выводит заголовки сообщений:
<b:loop var='i' values='data:posts'>
<h2><data:i.title/></h2>
</b:loop>
If / Else
Тэги b:if и b:else используются, чтобы отобразить один вариант контента при выполнении задонного условия и другой вариант — при не выполнении. Формат использования:
<b:if cond='условие'>
[содержимое, отображающееся, если условие выполняется]
<b:else/>
[содержимое, отображающееся, если условие не выполняется]
</b:if>
Тэг b:else не обязателен. Если он отсутствует, в случае невыполнения условия в данном месте не отображается ничего.В условие можно помещать что угодно, что вычислится как булево значение. Некоторые переменные сами содержат булево значение, например allowComments. Некоторые примеры:
- <b:if cond='data:post.showBacklinks'> Истинно, если в текущем посте следует отображать обратные ссылки.
- <b:if cond='data:displayname != "Fred"'> Истинно, если отображаемое имя не равно Fred.
- <b:if cond='data:post.numComments > 1'> Истинно, если пост имеет более одного комментария.