2014-04-29 26 views
0

我是新來的Smarty,現在玩它,看看它可以做什麼。我偶然發現了這個情況,並沒有發現任何資料參考: 如果我有test.conf文件多個部分,Smarty - 從配置文件加載多個部分

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的將返回變量,這是不以任何部分,並增加了所有變量中的「基本」部分。

是否可以一次添加所有部分?或者我必須致電

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

對於配置文件中的每個部分?

+0

如果您無論如何要包括一切,爲什麼要使用部分? – Borgtex

+0

@Borgtex那麼,如果我創建另一個文件,我想要從4個部分加載數據呢?或者讓我們說,我想要有1個配置文件和多個模板,它將多個部分加載到一個站點中。我如何指定從哪些部分加載? – WellBloud

回答

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); 

}

它應該工作,但我沒有測試它(從來不需要這樣的功能,並在目前沒有任何Smarty的項目進行測試)