Инструменты пользователя

Инструменты сайта


limb3:ru:packages:macro:intro

Введение в шаблонную систему MACRO

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

В рамках данного раздела мы рассмотрим основные элементы шаблонов MACRO.

Пример шаблона

{{insert into="content_zone" file="page.phtml"}}
<img src={$#photo.largeFileUrl} />
<dl>
<dt>Автор:</dt><dd>{$#photo.member.name}</dd>
<dt>Категория:</dt><dd>{$#photo.category.title}</dd>
<dt>Название:</dt><dd>{$#photo.title}</dd>
<dt>Теги:</dt>
<dd>
{{list using='{$#photo.tags}' as='$tag'}}
  <ul>
  {{list:item}}
    <li>{$tag.title|uppercase}</li>
  {{/list:item}}
  </ul>
  {{list:default}}
  Нет тегов
  {{/list:default}}  
{{/list}}
</dd>
{{insert file="photo/marks.phtml"/}}
</dl>
{{/insert}}

Основные элементы MACRO шаблона

Теги

В нашем примере:

{{insert into="content_zone" file="page.phtml"}}...{{/insert}}
 
{{list using='{$#photo.tags}' as='$tag'}}...{{/list}}

Теги обычно должны иметь закрывающий тег (как list или insert), но могут и не иметь.

Теги могут содержать один или несколько атрибутов. Например, list тег содержит атрибуты using и as.

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

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

Выражения

Выражения (output expressions) используются для вывода каких-либо значений переменных.

Выражения в нашем примере:

  {$tag.title|uppercase}
  {$#photo.largeFileUrl}

Выражения, стоящие в шаблонах - это по сути операции echo. В некоторых случаях, когда выражение является атрибутом тега, оно просто указывает на значение какой-либо переменной.

Точкой разделяются части пути до выводимой переменной. Выражение {$tag.title} эквивалентно <?php if(isset($tag['title'])) echo $tag['title']; ?>

Подробно выражения описаны в разделе "Выражения".

Фильтры

Фильтры используются для модификации/форматирования значений, выводимых в выражениях.

Выражения с фильрами в нашем примере:

  {$tag.title|uppercase}

Использованы фильтр:

  • uppercase - для перевода значения в верхний регистр. По-сути это алиас на php-функцию strtoupper, которая применяется для переменной, указанной в выражении.

Обычно фильтр представляет из себя враппер для какой-нибудь часто используемой функции php. Однако, ничего не мешает создавать свои уникальные фильтры, так как делать это достаточно просто.

Подробно фильтры описаны в разделе "Фильтры".

Дальнейшее чтение

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
   _  __   _  __   ____   __ __  _____
  | |/_/  / |/ /  / __/  / // / / ___/
 _>  <   /    /  / _/   / _  / / (_ / 
/_/|_|  /_/|_/  /___/  /_//_/  \___/
 
limb3/ru/packages/macro/intro.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)