- атрибутивный шаблонизатор для PHP
 
Пред.
Руководство по Ptal
Базовый синтаксис
След.

Функции

Так как в Ptal два контекста, поэтому существует 2 типа функций.

  1. Блочные функции (для контекста атрибутов).
  2. Функции выражений (для контекста выражений)

Блочные функции

Задаются в качестве атрибутов тегов.

<div tal:content="Hello world!"></div>
<tal:block tal:include="file somefile.tal;var {@somevar}" />
<div tal:block="foo1 {$bar1};foo2 some string"></div>

Синтаксис большинства таких функций аналогичен синтаксису атрибутов. Параметр и значение разделяются пробелом (но дальше может идти сколько угодно пробелов). Перечисление параметров разделяется точкой с запятой. Исключением являются следующие функции: tal:if, tal:content, tal:repeat, tal:if.

 

Большинство блочных функций действуют на весь элемент (открывающий тег, закрывающий тег и содержимое). Исключение: tal:assign.

 

Результат компиляции

<?php require_once("X:/home/ptal.local/www/lib/ptal/plugins/ptal_block_block.php");?>
<div>Hello world!</div>
<?php $this->_tplVars['var']=$this->_tplVars['somevar'];
      $this->fetch("somefile.tal");?> 
<?php ob_start()?>
<div></div>
<?php echo ptal_block_block(array('foo1'=>$this->_tplVars['bar1'],'foo2'=>"some string"),ob_get_clean(),$this)?>

Функции выражений

Такие функции нужны для использования внутри выражений.

Пример использования:

<a class="item tal:if(@page['current']) current"></a>

{tal:userfunc(foo1=bar1,foo2=some string)}

<div tal:content="Синтаксис tal:userfunc(foo1=bar1); может быть {@foo} весьма сложным"></div>

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

 

Результат компиляции:

<?php require_once("X:/home/ptal.local/www/lib/ptal/plugins/ptal_function_userfunc.php");?>

<a class="item <?php if($this->_tplVars['page']['current']):?> current<?php endif;?>"></a>

<?php echo ptal_function_userfunc(array('foo1'=>"bar1",'foo2'=>"some string"),$this)?>

<div>Синтаксис <?php echo ptal_function_userfunc(array('foo1'=>"bar1"),$this)?> может быть <?php echo $this->_tplVars['foo'];?> весьма сложным</div>

Пред.
Переменные
Начало
Уровень выше
След.
Выражения
 

 

граммидин цена