Variables Smarty-从配置文件加载多个节

Variables Smarty-从配置文件加载多个节,variables,configuration,smarty,smarty3,Variables,Configuration,Smarty,Smarty3,我是Smarty的新手,现在正在玩它,看看它能做些什么。我偶然发现了这种情况,在文档中没有找到任何参考: 如果test.conf文件中有多个部分 sitename = "Testing Smarty" [basic] apply = true denied = false [images] width = 60px height = 80px [anythingelse] foo = "Yes" bar = "No" 如何一次包含所有这些部分 如果我说: {config_load file="

我是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"}
{config_load file="test.conf" section="basic"}
Smarty将只返回变量,这些变量不在任何部分中。因此{$smarty.config.sitename}或#sitename#将起作用,但不会加载任何其他变量

如果我说:

{config_load file="test.conf"}
{config_load file="test.conf" section="basic"}
Smarty将返回不在任何部分中的变量,并在“基本”部分中添加所有变量

是否可以一次添加所有部分?还是我必须打电话

{config_load file="test.conf" section="some_section"} 

对于配置文件中的每个部分?

根据文档,这是不可能的。没有可以加载多个配置节的信息。但是,如果您可以像在文档中一样在PHP中加载配置文件,而不是在模板中加载配置文件,那么您可以创建节数组,然后在循环中加载所需的节,因此您应该实现所需的:

$sections = array('section1', 'section2', 'section10');

foreach ($sections as $section) {
    $smarty->configLoad('filename.conf', $section);
}


它应该可以工作,但我还没有测试过它(从来没有需要这样的功能,目前也没有任何smarty项目需要测试)

如果你想包含所有内容,为什么要使用sections?@Borgtex好吧,如果我创建另一个文件,从中加载4个sections中的数据呢?或者,假设我想要一个配置文件和多个模板,将多个部分加载到一个站点中。如何指定从哪个部分加载?