Smarty可以只读取一个块而不是模板吗?

时间:2014-09-19 23:26:20

标签: php templates smarty smarty3

一开始我对Smarty来说真的很新。 我得到了一些有时需要首先解析的模板文件。 因此,了解Smarty是否只能解析一个特殊块而不是整个文件包含多个块将会很有趣。 有一个名为fetch ()的函数,但它没有按照我希望的方式工作。

如果有可能做类似

的事情会很好
Smarty()->fetch($myTpl, array('blockname1'));

1 个答案:

答案 0 :(得分:0)

据我所知你不能这样做,但你可以拥有多个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文件(或用它做你想做的任何事情 - 保存到文件等等)。