我正在尝试(未成功)添加两个并行目录作为 smarty (3) 的模板。
简而言之,我想创建一个基本模板和另一个自定义。如果自定义文件不存在,那么 smarty 应该使用肯定存在的基本模板。
已经有一些东西可以做到这一点?
当然,即使在导入时也可以使用。
我正在尝试(未成功)添加两个并行目录作为 smarty (3) 的模板。
简而言之,我想创建一个基本模板和另一个自定义。如果自定义文件不存在,那么 smarty 应该使用肯定存在的基本模板。
已经有一些东西可以做到这一点?
当然,即使在导入时也可以使用。
是的,您可以使用setTemplateDir
.
例子
<?php
// setup template directories
$smarty->setTemplateDir(array(
'./templates', // element: 0, index: 0
'./templates_2', // element: 1, index: 1
'10' => 'templates_10', // element: 2, index: '10'
'foo' => 'templates_foo', // element: 3, index: 'foo'
));
/*
assume the template structure
./templates/foo.tpl
./templates_2/foo.tpl
./templates_2/bar.tpl
./templates_10/foo.tpl
./templates_10/bar.tpl
./templates_foo/foo.tpl
*/
// regular access
$smarty->display('file:foo.tpl');
// will load ./templates/foo.tpl
// using numeric index
$smarty->display('file:[1]foo.tpl');
// will load ./templates_2/foo.tpl
// using numeric string index
$smarty->display('file:[10]foo.tpl');
// will load ./templates_10/foo.tpl
// using string index
$smarty->display('file:[foo]foo.tpl');
// will load ./templates_foo/foo.tpl
// using "unknown" numeric index (using element number)
$smarty->display('file:[2]foo.tpl');
// will load ./templates_10/foo.tpl
?>
您可以从 Smarty 获得更多信息。
http://www.smarty.net/docs/en/api.set.template.dir.tpl
和这里
http://www.smarty.net/docs/en/resources.tpl#templates.from.specified.template.dir