我正在为一个用Smarty2实现的相当复杂的项目编写一个插件(不错,这不是我的决定)。我必须更改一些模板,但只有两三个(例如,生成页面导航条的模板)。问题是:-它们没有任何我需要的钩子或变量--我不能修改它们(因为我想保持整个事情可更新),但是我可以访问$smarty对象,可以使用它的方法,比如赋值。
是否有可能在模板urls显示之前过滤它们?我脑子里有一件事
$smarty->replaceUrl('templates/navbar.tpl', 'myplugin/mynavbar.tpl');或者你们中的一个有什么其他的建议我可以解决这个问题吗?我知道我可以使用register_outputfilter并使用一些字符串操作插入代码,但这显然是一个糟糕的解决方案。
发布于 2016-06-20 14:40:26
我自己找到了一个很有说服力的解决方案
array_unshift($smarty->template_dir, $myTemplatePath);在我的$myTemplatePath中,我保存了我想要替换的每个模板的版本。案子解决了。
https://stackoverflow.com/questions/37922104
复制相似问题