{/foreach}
Smarty將所有大括弧{}里的東西都視為自己的邏輯程序,於是我們在網頁中想插入
javascript函數就需要literal的幫忙了,literal的功能就是忽略大括弧{}。
示例:
{literal}
function isblank(field) {
if (field.value == '') { return false;
}else{
document.loginform.submit();
return true;
}
}
{/literal}
我們可以看到,smarty的程序部分實際就是符合php語言規範的一組代碼,我們依次來解釋一下:
1:語句:
包含的部分為程序篇頭註釋。主要的內容應該為對程序的作用,版權與作者及編寫時間做一個簡單的介紹,這在smarty中不是必需的,但從程序的風格來講,這是一個好的風格。
2:include_once語句:
它將安裝到網站的smarty文件包含到當前文件中,注意包含的路徑一定要寫正確。
3:$smarty = new Smarty():
這一句新建一個Smarty對象$smarty,簡單的一個對象的實例化。
4:$smarty->templates(""):
這一句指明$smarty對象使用tpl模板時的路徑,它是一個目錄,在沒有這一句時,Smarty默認的模板路徑為當前目錄的templates目錄,實際在寫程序時,我們要將這一句寫明,這也是一種好的程序風格。
5:$smarty->templates_c(""):
這一句指明$smarty對象進行編譯時的目錄。在模板設計篇我們已經知道Smarty是一種編譯型模板語言,而這個目錄,就是它編譯模板的目錄,要注意,如果站點位於
linux伺服器上,請確保
teamplates_c里定義的這個目錄具有可寫可讀許可權,默認情況下它的編譯目錄是當前目錄下的templates_c,出於同樣的理由我們將其明確的寫出來。
6:$smarty->left_delimiter與$smarty->right_delimiter:
指明在查找模板變數時的左右分割符。默認情況下為"{"與"}",但在實際中因為我們要在模板中使用