Smarty и функция eval в нём

x2com

Новичок
Smarty и функция eval в нём

Доброго времени суток!
Ситуация такая. В смартёвом шаблоне я пишу пакой код:
{if $m_eval}{eval var=$body}{else}{$body}{/if}
Т.е. от присутствия $m_eval зависит будет ли интерпретироваться переменная $body как шаблон смарти или как простой хтмл.
Вопрос: можно ли избежать такого кода в шаблоне, а в ПХП как-то обкрутить то как будет обрабатываться $body ?
Т.е. , чтоб вместа кода выше можно было просто написать:
{$body}

Заранее спасибо!
 

WP

^_^
А зачем тебе такая извращенческая структура? eval тормозит т.к. компилировать надо каждый раз.
 

hermit_refined

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

откуда вы вообще берёте это $body?..
 

x2com

Новичок
Понятно, что eval-ом медленнее, но мне очень желательно, в некоторых случаях, шаблоны Smarty в базе держать. Раз не советуете такими извращениями заниматься, попробую организовать временные копии материалов в файлах.
PS -
откуда вы вообще берёте это $body?..
$body дёргается из БД, там HTML код (материал страницы).
Всем большое спасибо!
 

alexhemp

Новичок
x2com

А вы документацию по смарти часом читать не пробовали?

Чтобы держать шаблоны в базе - там есть ВСТРОЕННЫЙ механизм, который не будет так тормозить как ваш eval

http://smarty.php.net/manual/ru/plugins.resources.php
Там в примере как раз описан механизм "шаблоны в базе".
 
Сверху