2017-07-07 65 views
0

是否可以覆盖Smarty的模板目录 - 地图包括路径调用模板在不同的文件夹

{include file='fake/path/to/template.tpl'} 

去实际上包括在不同的文件夹中的模板?

real/path/to/template.tpl 

我问这个是因为我们最近提出的我们的代码(插件)某些部分到供应商的文件夹,我们正在努力寻找不改变每一个智者文件一个简单的解决方案。 (有数百个)

PS。如果我们可以避免使用符号链接,那就太棒了!

回答

1

你可以编写一个函数,它接受一个字符串(假url)并输出一个字符串(真实url)。

function getRealURL($tpl_filename) { 
    $path = '../real/path/to/'; 
    if(file_exists($path.$ui_view)) { 
     return $ui_view; 
    } 
    return $tpl_filename; 
} 

我使用与其他因素有类似的功能,但是这是它与一些验证,新的文件给定的路径存在的基础。它还可以轻松地与特定目录中的文件白名单一起使用。

我相信你可以这样称呼它。 {include file ='fake/path/to/template.tpl'| getRealURL}