Для начала я действительно новичок в Smarty.
У меня есть несколько файлов шаблонов, которые нужно сначала проанализировать иногда.
Поэтому было бы интересно узнать, может ли Smarty анализировать только один специальный блок вместо всего файла со многими блоками.
Есть функция под названием fetch ()
но это не работает так, как я надеялся.
Было бы неплохо, если бы можно было сделать что-то вроде
Smarty()->fetch($myTpl, array('blockname1'));
Насколько я знаю, вы не можете сделать это, но вы можете иметь несколько файлов 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 (или делать с ним все, что вы хотите — сохранить в файл и т. Д.).
Других решений пока нет …