2012-05-22 3 views
4

Я использую TT от perl и пытаюсь вставить в шаблон и обработать переменную, которая сама содержит директивы TT.Template :: Обработка переменной инструмента

Итак, в сценарии я пишу, как чего-л:

$var{descr} = "[% pid = 1; INSERT plink.par %]"; 

А затем в шаблоне TT (который получил \% вар):

[% BLOCK parsedDescr %] 
[% descr %] 
[% END %] 
<p>[% INCLUDE parsedDescr %] 

И я ожидаю Pid переменную установлено значение «1» и вставлен файл plink.par. Но вместо этого я получаю на моем HTML-страницу именно содержимое переменной Descr:

[% pid = 1; INSERT plink.par %] 

т.е. эта переменная остается НЕОБРАБОТАННАЯ по ТТ.

Как я могу сделать процесс TT-процесса содержимым?

ответ

4

Вы можете использовать eval filter:

<p>[% descr | eval %] 

От связанной страницы руководства:

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

Смежные вопросы