W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
Smarty通常運(yùn)行在內(nèi)置的、基于文件系統(tǒng)的模板資源上。 默認(rèn)資源是file:
。 如果修改了$default_resource_type
那么資源關(guān)鍵字file:
就必須要指明。
如果找不到需要的模板文件,那么 $default_template_handler_func
將會(huì)被調(diào)用。
在Smarty 3.1開(kāi)始,除非開(kāi)啟了 $use_include_path
配置,否則文件資源不會(huì)再搜索 include_path 的路徑了。
Smarty從$template_dir
設(shè)置的目錄中, 獲取模板文件資源。 多個(gè)模板目錄將以在數(shù)組中的順序進(jìn)行搜索,在尋找到第一個(gè)匹配的模板時(shí)將返回。
Example 16.1. 使用$template_dir
<?php $smarty->display('index.tpl'); $smarty->display('file:index.tpl'); // 同上 ?>
模板中使用
{include file='index.tpl'} {include file='file:index.tpl'} {* 同上 *}
Smarty 3.1 提供“歸類(lèi)符號(hào)”來(lái)定義$template_dir
中的特定元素。 此特性可允許網(wǎng)站中使用和更好地管理多個(gè)模板集合。
“歸類(lèi)符號(hào)”可以用在任何定義了file:
資源類(lèi)型的地方。
Example 16.2. 特定的$template_dir
<?php // 設(shè)置模板目錄 $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' )); /* 假定模板目錄結(jié)構(gòu)如下: ./templates/foo.tpl ./templates_2/foo.tpl ./templates_2/bar.tpl ./templates_10/foo.tpl ./templates_10/bar.tpl ./templates_foo/foo.tpl */ // 正常讀取 $smarty->display('file:foo.tpl'); // 將載入 ./templates/foo.tpl // 默認(rèn)使用數(shù)字下標(biāo) $smarty->display('file:[1]foo.tpl'); // 將載入 ./templates_2/foo.tpl // 使用字符串的下標(biāo)('10'看起來(lái)像數(shù)字下標(biāo),但卻是有單引號(hào)的字符串) $smarty->display('file:[10]foo.tpl'); // 將載入 ./templates_10/foo.tpl // 使用字符串的下標(biāo) $smarty->display('file:[foo]foo.tpl'); // 將載入 ./templates_foo/foo.tpl // 使用 "未知" 數(shù)字下標(biāo) (用元素的數(shù)字) $smarty->display('file:[2]foo.tpl'); // 將載入 ./templates_10/foo.tpl ?>
模板中調(diào)用
{include file="file:foo.tpl"} {* 將載入 ./templates/foo.tpl *} {include file="file:[1]foo.tpl"} {* 將載入 ./templates_2/foo.tpl *} {include file="file:[foo]foo.tpl"} {* 將載入 ./templates_foo/foo.tpl *}
在$template_dir
之外的模板, file:
將需要使用絕對(duì)路徑來(lái)獲取模板。
當(dāng)Security
開(kāi)啟, 在$template_dir
之外的模板是不允許讀取的,除非你將這些目錄都設(shè)置在$secure_dir
中。
Example 16.3. 任意目錄的模板
<?php $smarty->display('file:/export/templates/index.tpl'); $smarty->display('file:/path/to/my/templates/menu.tpl'); ?>
模板中:
{include file='file:/usr/local/share/templates/navigation.tpl'}
如果使用Windows的機(jī)器,那么文件路徑將以驅(qū)動(dòng)盤(pán)符(C:)開(kāi)頭。 確保file:
的路徑避免命名空間沖突,達(dá)到需要的結(jié)果。
Example 16.4. 使用windows的文件路徑
<?php $smarty->display('file:C:/export/templates/index.tpl'); $smarty->display('file:F:/path/to/my/templates/menu.tpl'); ?>
在模板中:
{include file='file:D:/usr/local/share/templates/navigation.tpl'}
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: