Smarty學習筆記(二)

一.基本語法
1.$samrty->assign(key,value);
  $samrty->assign(array(key=>value,key=>value));
2.$samrty->display();
3.註冊插件
  $samrty->registPlugin("function","functionname","HTML自定義標籤名");
4.註釋{*註釋內容*}


二.三種主要變量
1.從PHP中分配變量
2.從配置文件中讀取變量
<{config_load file="xxx.conf" section="xxxx"}>//加載配置文件


<body text="<{#bodycolor#}>">
<body text="<{$samrty.conf.bodycolor}>">


bodycolor=blue;
[section1]
bodycolor=green;
[section2]
bodycolor=red;


3.保留變量
$_GET
$_POST
$_SESSION
$_SERVE
$_ENV
$_COOKIE


$samrty->assgin("username","content")
<{$username}>
<{$smarty.session.username}>
<{smarty["session"]["username"]}>


三.變量調節器(變量修改器)
使用場合:
例子1:標題分配到模板中,在模板中處理截取一個,顯示一個
例子2:時間在數據庫中都是以時間戳來保存,交給模板,模板中先輸出什麼格式都可以。


使用語法:
<{$var|函數名:參數1:參數2.。。。}>




$smarty->registerPlugin("mofifier","標籤名","自定義函數名");
;


組合變量修改器:
同一個變量使用多個修改器一起處理
<{$var|函數1|函數2|。。。}>


四.自定義函數插件
三類:1.變量調節器;2.函數;3.塊函數


兩種做法:
1.使用registerPlugin()方法註冊;




2.開發samrty插件
聲明位置:可以Smarty類庫中的緣由plugins目錄下創建,也可以使用自己指定的目錄
 $smarty->addPluginsDir(目錄);
文件的命名:修改器:modifier.修改器名稱.php
     函數:function.函數名稱.php
            塊函數:block.塊函數名稱.php
函數的命名:修改器:samrty_modifier_修改器名稱();
   函數:smarty_function_函數名稱();
            塊函數:smarty_block_塊函數名稱();
3.參數規則:修改器:修改器:samrty_modifier_修改器名稱($var,$a...);
       函數:smarty_function_函數名稱($args,$smarty);
   塊函數:smarty_block_塊函數名稱($args,$contet,$smarty,$repeat);


五. 內置函數
1.變量的聲明方式:
<{assign var="one" value="1111"}>
<{assign "two" value="2222"}>
<{$there="333333"}>
<{$var}>,<{append}>(聲明變量),<{assign}>//三種


2.函數的聲明
<{function name="test"}>
aaaaaaaaaaa<br>
<{/function}>


<{test}>


3.數組的變量
<{foreach $array as $key=>$value}>
<{/foreach}>
屬性:
順序索引:index(從0開始),iteration(從1開始);




<{section}>


<{section loop="$lamp" name="one"}>
<{$smarty.section.one.index}>----<{$lamp[one]}><br>
<{/seciton}>




<{include file="name" assign="var"}>//將導入文件存入變量


六模板繼承
模板之間的事,和PHP 程序沒有關係
1.在模板中使用<{extends}>函數實現模板繼承
<{extends file="one.tpl"}>
<{extends "one.tpl"}>
必須在子模板的第一行


可使用display()方法代替{extend}
display("extends:one.tpltwo.tpl|there.tpl")


2.在子模板中覆蓋父模板中的部分內容區域:
在父模板聲明一個區域“塊”<{block}>


注意:1.塊對父模板沒作用;2.子模板只能識別塊標籤


合併子模板和父模板的<{block}>:
追加append(後)/prepend(前)
<{$smarty.block.child}>在父模板中寫,可使子模板在任何位置追加//保留變量
<{$samrty.block.parent}>子模板中寫,可將父模板中的內容內容插入到子模板中的任何位置


七.smarty的緩存控制
1.建議緩存
$smarty->cacheing=true;
$smarty->setCacheDir(目錄);
2.處理緩存的生命週期
$smarty->cache_lifetime=60*60*24*7;
3.每個模板可以設置多個緩存
display()上面處理
$smarty->dispaly("name.tpl",$_SERVER["REQUEST_URI"])
4.位緩存實例消除處理開銷
$smarty->isCached("name.tpl",$_SERVER["REQUEST_URI"])
5.關閉局部緩存
<{nocache}><{/nocache}>
6.清除緩存
$smart->clearCache()
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章