Smarty 學習隨記!

Smarty 學習隨記!

我的個人建議,下邊的文字都是SMARTY裏經常用到的一些基礎概念的東西! 寫的非常細緻,而且接近中國人的思維了,都是工作中做的總結. 但是更全的資料到SMARTY的官方論壇上去看吧!!!!!
http://www.phpinsider.com/smarty-forum/ 我註冊的ID是:phpcoder
雖然是全英文的,但是隻要你能看個大概其,相信收益將會非常大,而且上邊的管理員也是非常熱情,可是因爲是美國時間,所以一般他們活躍的時間是半夜3,4點!!




雖然很簡單的東西,但是還是共享一下!!

什麼是smarty及其安裝

Smarty是一個php模板引擎,它分開了邏輯程序和外在的內容,提供了一種易於管理的方法.

Smarty要求web服務器運行php4.0.6和以上版本.

smarty安裝需要smarty庫文件。可以去官方網站http://smarty.php.net下載。

網上講了很多安裝的教程,但是我都沒有成功,所以直接把整個目錄名改爲smarty直接複製到了網站所在的目錄下,然後打開
http://網站路徑/smarty/demo/index.php,顯示正常,應該算是安裝成功了。


基本語法

所有的smarty標籤都被加上了定界符.在smarty裏,所有定界符以外的內容都是靜態的,當smarty遇到了模板標籤,將嘗試解釋他們,然後再以恰當的方式輸出.

默認情況下是 {和},但它們是可定製的.定製方法是:
$smarty->left_delimiter = '<!--{';
$smarty->right_delimiter = '}-->';

1.註釋

模板註釋被*號包圍,例如 {* this is a comment *}
smarty註釋將不被輸出.它是模板內在的註釋.

2.變量
模板變量以$開頭,可以包含數字,字母和下劃線。
config_file變量是例外要用#變量名#的方法引用

3.函數
smarty標籤輸出一個變量或者調用某種函數.
在定界符內函數和其屬性將被處理和輸出.例如:
{funcname attr1="val" attr2="val"}.
funcname爲函數的名稱比如:include等,attr1,attr2爲屬性名,val爲屬性相應的值。

在模板裏無論是內建函數還是自定義函數都有相同的語法.
內建函數將在smarty內部工作,例如 {if}, {section} 和{strip}.他們不能被修改.
自定義函數通過插件機制起作用,它們是附加函數,可以隨意修改,自行添加.
例如 {html_options} and {html_select_date}

4.屬性
靜態數值不需要加引號,布爾值(真或假)也不需要引號,可以是true,on,yes或者false,off,no. 但是字符串例外.變量同樣被用到了,它們也不能加引號.

5.在字符串中插入變量
只能識別數字,字母,下劃線和[]的組合,如果爲複雜的形式需要用``將變量隔起來。比如{func var="test $foo.bar test"} 中只能識別變量$foo,要識別$foo.bar,需要寫成{func var="test `$foo.bar` test"}的格式。

6.一些保留字的顯示方法
在模板中如果要將smarty的一些保留字作爲語言的內容顯示出來,比如顯示分隔符,默認爲{}的方法是: {ldelim},{rdelim} 或者{$smarty.ldelim},{$smarty.rdelim} 或者可以把{}放在{literal} .. {/literal} 中間輸出。

smarty的保留變量

{$smarty}保留變量可以被用於訪問一些特殊的模板變量.
以下是全部.

頁面請求變量
以下是訪問頁面請求變量諸如get,post,cookies,server,enviroment和session變量的例子. 例如{$smarty.server.SERVER_NAME}取得服務器變量,{$smarty.env.PATH}取得系統環境變量path, {$smarty.request.username}取得get/post/cookies/server/env的複合變量。

{$smarty.now}變量用於訪問當前時間戳.
可以用 date_format調節器格式化輸出. 例如{$smarty.now|date_format:"%Y-%m-%d %H:%M:%S"}

{$smarty.const}
你可以直接訪問PHP常量. 例如{$smarty.const._MY_CONST_VAL}

{$smarty.capture}
可以通過 {capture}..{/capture}結構 截取的輸出可以使用{$smarty} 變量訪問.

{$smarty.config}
{$smarty}變量 可以訪問已經加載的config變量.
例如 {$smarty.config.foo}就可以表示 {#foo#}.

{$smarty.section}, {$smarty.foreach}
{$smarty} 變量可以訪問'section'和'foreach'循環的屬性.

{$smarty.template}
顯示當前被處理的模板的名字.

{$smarty.version}
顯示smarty模板的版本

{$smarty.ldelim}
顯示左分隔符

{$smarty.rdelim}
顯示右分隔符
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章