1

所以我想使用类似于 asp.net 处理母版页的 smarty,即我想创建一个 master.tpl 文件,该文件负责始终呈现大部分页面(页眉、页脚、背景等),但是我在每个页面上都有一个我想要的下拉菜单,它有一些动态数据,我不想在每个使用 master.tpl 文件的 php 脚本中调用或重现这个函数,我想要一种方法,当那个 tpl文件被使用,另外运行正确的脚本。

我希望以正确的方式做到这一点,所以不要使用 {php} 或其他任何不推荐使用的东西。

谢谢。

4

3 回答 3

0

渲染一个单独的 smarty 模板并将其添加到配置文件中

$smarty->assign('items',getmenuitems());


$menu = $smarty->fetch('mymenu.tpl');

$smarty->assign('dynamic_menu',$menu);

如果您将这样的代码放在每个页面上调用的配置文件等中,它应该可以执行您想要的操作。然后 {$dynamic_menu} 可以放在你的主模板中。

另一方面,我发现为 smarty 使用不同的分隔符可以消除使用值得脚本等的痛苦。

$smarty-> left_delimiter = '{[';
于 2012-05-12T19:55:17.340 回答
0

只需通过 smarty 调用包含它。{include file="path" name_of_variable=$value_of_variable}。在 php 代码中,只需执行附加代码,即可在每个页面上生成数据。

于 2012-05-12T20:31:58.503 回答
0

所以,我最终写了一个插件(这比我最初想象的要简单得多),只返回一个字符串,包含<li>项目,我想知道是否可以在 foreach 循环中调用这个函数,我无法理解昨晚上班。

于 2012-05-15T18:21:59.383 回答