Инструкция variable позволяет назначить переменную внутри шаблона. В последующем эта переменная может вызываться стандартным образом через двойные фигурные скобки. Переменная действует внутри того уровня HTML, в котором объявлена и во всех вложенных. Во вложенных уровнях переменная вызывается через символ %, количество символов % соответствует уровню вложенности относительно уровня на котором создана переменная.
Так же результат вычисления переменной записывается в массив $_SESSION["var"][имя_переменной], это позволяет получать доступ к переменной из вышестоящих уровней HTML.
ВАЖНО! После создания переменной тэг с инструкцией удаляется.
Пример:
<meta data-role="variable" var="b2b" value=""> <meta data-role="variable" var="b2b" value="?b2b=true" where=' "{{_GET[b2b]}}" = "true" '> <ul data-role="tree" from="categories"> <li> <a href="/users/category/{{id}}.htm{{%b2b}}">{{name}}</a> <div data-role="tree" from="categories" item="{{id}}"> <a href="/users/category/{{id}}.htm{{%%b2b}}">{{name}}</a> </div> </li> </ul>
В примере показано как создаётся и используется переменная b2b. Вначале созаётся переменная b2b с пустым значением, затем по условию переменная меняет своё значение. Далее переменная b2b используется в циклах, организованных через инструкцию tree, и конкатенируется к адресу ссылки. Так как инструкция tree меняет уровень текущей записи, то переменная b2b вызывается через %, соответственно уровню вложенности.
Пример:
<span data-role="dict" from="query_status" data-hide="*"> <meta data-role="variable" var="status_{{id}}" value="{{name}}"> </span>
В примере показано создание переменных в цикле из полей справочника query_status, причём имя самой переменной так же является вычисляемым значением.