Может ли Smarty читать только один блок, а не в шаблоне?

Для начала я новичок в Smarty. У меня есть несколько файлов шаблонов, которые иногда нужно сначала проанализировать. Поэтому было бы интересно узнать, может ли Smarty анализировать только один специальный блок вместо всего файла с множеством блоков. Есть функция с именем fetch (), но я надеялся, что она работает не так.

Было бы неплохо, если бы можно было сделать что-то вроде

Smarty()->fetch($myTpl, array('blockname1'));

person Timo.Klement    schedule 19.09.2014    source источник
comment
Вы можете исправить такую ​​функцию вместе, используя наследование шаблонов и ресурсы строковых шаблонов.   -  person IMSoP    schedule 20.09.2014


Ответы (1)


Насколько я знаю, вы не можете этого сделать, но у вас может быть несколько файлов Smarty. Итак, что вы можете сделать:

Один файл Smarty (например, index.tpl):

bla bla bla 
{$content}
bla bla bla

Другой файл Smarty (например site.tpl)

another bla bla bla 

В PHP теперь можно:

$site = $smarty->fetch('site.tpl');
$smarty->assign('content', $site . ' xxx'); // you modify in PHP content a bit
$smarty->display('index.tpl');

И вывод будет:

bla bla bla 
another bla bla bla xxx
bla bla bla

Итак, как вы видите, вам нужно поместить блок, который вы хотите проанализировать отдельно, в другой файл, затем загрузить его, а затем вы можете назначить его содержимое другому файлу Smarty (или сделать с ним все, что захотите - сохранить в файл и так далее).

person Marcin Nabiałek    schedule 20.09.2014