我是Smarty的新手,现在正在玩它并看看它能做些什么。我偶然发现了这种情况,并没有在文档中找到任何参考: 如果我在test.conf文件中有多个部分,
sitename = "Testing Smarty"
[basic]
apply = true
denied = false
[images]
width = 60px
height = 80px
[anythingelse]
foo = "Yes"
bar = "No"
如何一次性包含所有这些部分?
如果我把:
{config_load file="test.conf"}
Smarty将仅返回变量,这些变量不属于任何部分。因此{$ smarty.config.sitename}或#sitename#将起作用,但不会加载任何其他变量。
如果我把:
{config_load file="test.conf" section="basic"}
Smarty将返回变量,这些变量不在任何部分中,并将所有变量添加到" basic"部分。
是否可以一次添加所有部分?或者我必须致电
{config_load file="test.conf" section="some_section"}
对于我在配置文件中的每个部分?
答案 0 :(得分:1)
根据文件,这是不可能的。没有信息可以加载多个配置部分。但是,如果您可以加载配置文件而不是模板本身,而是加载PHP,就像文档http://www.smarty.net/docs/en/api.config.load.tpl一样,您可以创建部分数组,然后在循环加载部分中创建所需的部分,这样您就可以实现所需:
$sections = array('section1', 'section2', 'section10');
foreach ($sections as $section) {
$smarty->configLoad('filename.conf', $section);
}
它应该可以工作,但我还没有测试过(从来没有需要这样的功能,目前还没有任何聪明的项目可以测试)