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

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


limb3_2007_2:ru:usage:wact:expressions

Выражения. Вывод значений переменных в шаблоне.

Данная страница предполагает, что Вам знакомы следующие понятия:

Общий вид выражений.

Выражения - это специальные конструкции шаблонной системы WACT, которые позволяют выводить какие-либо значения (переменные или обычные строки) в шаблон. Выражения также позволяют применять к значениям специальные фильтры, то есть модифицировать значения при выводе.

Выражения имеют общий вид: {$Expression[|filter1|filterN]}, где:

  • {$…} - знак самого выражения.
  • Expression - имя переменной или строка, которую необходимо вывести.
  • filter1, filterN - фильтры, применяемые к выводимым данным. Несколько фильтров разделяются вертикальными чертами.

По-умолчанию, WACT применяет функцию htmlspecialchars для всех выражений. То есть специальные символы, такие как '(одинарные кавычки), «(двойные кавычки), &(амперсанды), <(меньше), >(больше) транформируются в HTML эквиваленты. Для того, чтобы отменить это модификацию, используйте фильтр raw, например, {$Content|raw}.

Вывод литеральных значений при помощи выражений

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

{$"this is a constant"}
{$'this is a constant'}

Например, это применяется для перевода строк:

<h1>{$'Search'|i18n:'/search'}</h1>

Здесь к константному значению 'Search' будет применен фильтр i18n, который переведет строку на язык пользователя при помощи пакета I18N.

Вывод переменных

Для вывода значения переменной в шаблон используется конструкция вида {$VariableName} (вернее {$DBE}, но об этом чуть позднее), например:

<h1>{$Title}</h1>

WACT будет искать переменную с именем Title внутри текущего контейнера данных. Чтобы заполнить значение переменной, указанной в этом маленьком примере, вам может потребоваться приблизительно такой скрипт (помните, что сам шаблон - это корневой контейнер данных):

$template = new Template('/index.html');
$template->set('Title', 'Заголовок страницы');

Тег <core:set> можно использовать для того, чтобы определять значение переменных во время фазы компиляции. Это может быть удобно, когда одно выражение используется в нескольких местах.

Выражения в качестве атрибутов тегов

Выражения могут использоваться также для указания атрибутов обычных HTML-тегов, а также большинства WACT-тегов:

<a class="{$display_class}">...</a>
<fetch:param record_id="{$id}"/>

Единственное ограничение здесь - это атрибут id, в котором не могут применяться выражения.

DBE. Data Binding Expressions

На самом деле общий вид выражения для вывода переменной - {$DBE[|filters]}, где DBE - это Data Binding Expression - полный путь до переменной, а [|filters] - опциональный набор фильтров.

DBE в общем виде состоит из двух частей:

  • Пути (модификаторы) до контейнера данных.
  • Пути до переменной относительно полученного контейнера данных.

Например: {$^^author.name}, что значит: а) получить контейнер данных на 2 уровня выше (контейнеры данных образуют дерево, ак вы помните), чем текущий, б) из него получить переменную author, из которой вывести переменную name.

Подробнее о Data Binding Expressions.

Обсуждение

Ваш комментарий. Вики-синтаксис разрешён:
   ___    ____  ____   _   __   __  ___
  / _ |  / __/ / __ \ | | / /  /  |/  /
 / __ | / _/  / /_/ / | |/ /  / /|_/ / 
/_/ |_|/___/  \____/  |___/  /_/  /_/
 
limb3_2007_2/ru/usage/wact/expressions.txt · Последние изменения: 2010/11/10 10:02 (внешнее изменение)