ThinkPHP框架檢視詳細介紹View檢視–模板(九)

傑克.陳發表於2015-06-23
原文:
ThinkPHP框架檢視詳細介紹 View 檢視–模板(九)

檢視也是ThinkPHP使用的核心部分:


一、模板的使用

a、規則
模板資料夾下[TPL]/[分組資料夾/][模板主題資料夾/]和模組名同名的資料夾[Index]/和方法名同名的檔案[index].html(.tpl)

 –>更換模板檔案的字尾名(修改配置檔案)

`TMPL_TEMPLATE_SUFFIX`=>`.tpl`,//更改模板檔案字尾名,預設是html


b、修改模板檔案目錄層次
Tpl/Index/index.html   ==>   Tpl/Index_index.html (改成這種檔案目錄形式)
      配置檔案:
`TMPL_FILE_DEPR`=>`_`,//修改模板檔案目錄層次

c、模板主題(就是網站的不同模板類似QQ裝扮皮膚)
–>TP預設是沒有主題的,現在模擬建立2個主題模板 my 和 your 資料夾
  Home/Tpl/my/Index/index.html
  Home/Tpl/your/Index/index.html
  想用哪個模板主題,在配置檔案中換上對應值即可  
`DEFAULT_THEME`=>`your`,  //設定預設模板主題,訪問的時候就是your模板下的index
需要在TPL下面新建一個your資料夾作為模板主題資料夾

*如何動態修改模板主題?
1、在後臺準備一個功能,修改config.php檔案中的預設模板項
2、通過url傳遞 t=主題 引數可以修改不同的模板
`DEFAULT_THEME`=>`your`,//設定預設模板主題
`TMPL_DETECT_THEME`=>true,//自動偵測模板主題
`THEME_LIST`=>`your,my`,//支援的模板主題列表要先建立好 my 和 your模板
設定好後這麼訪問,後面直接帶個t引數  t/你的模板檔案:
 http://localhost/thinkphp/index.php/Index/index.html/t/my 
 http://localhost/thinkphp/index.php/Index/index.html/t/your

二、輸出模板內容
a、display
1.display中沒有引數
$this->display();
2.可以帶引數
$this->display(本模組資料夾下的其他模板檔案);
$this->display(`index2`);

$this->display(其他資料夾下的模板檔案);
$this->display(`User:index`);  //本模組呼叫User模組的index檔案
//注意,僅僅需要在Tpl下有Public資料夾以及其中的error.html即可
//不需要一定有Public模組–PublicAction.class.php
$this->display(`Public:error`);

$this->display(其他主題下的 資料夾下的 模板檔案);
//需要開啟主題支援,DEFAULT_THEME`=>`my`
$this->display(`my:Index:index`);

$this->display(一個url路徑);
$this->display(`./Public/error.html`);   //public位置在網站根目錄下 /public/error.html
//幾乎不使用
$this->display(`./Public/error.html`,`utf-8`,`text/xml`);  //模板   編碼  顯示方式(html或xml)

$content =`<b>這是show的使用直接傳html程式碼</b>`;//可能是資料庫啊直接拿到的輸出來
$this->show($content);    ==  $this->show(`<b>這是show的使用直接傳html程式碼</b>`);  

3.fetch方法
獲得模板檔案中的內容,以字串形式返回
$content=$this->fetch(`Public:error`);
4.show方法
不需要模板檔案,可以直接輸出模板內容
$content=$this->fetch(`Public:error`);
dump($content);
$content=str_replace(`h1`,`i`,$content);
$this->show($content);

三、模板中的賦值 : 
//$this->assign(`name`,`樂楊俊`);  或
$this->name=`樂楊俊2`;
$this->display();
模板變數輸出:
一、變數輸出
1.標量輸出  –整型 浮點型 字元型、、、
2.陣列輸出
$arr = array(`k1`=>`leyangjun`,`k2`=>`leyangjun2`);
$this->assign(`name`,$arr);
$this->display();
模板輸出用:
{$name[1]}    –索引陣列
{$name[`k2`]} –關聯陣列  或
{$name.k1}
3.物件輸出
{$name:k}
{$name->k}
二、系統變數(手冊詳細介紹)
//http://localhost/thinkphp/index.php/Index/add/name/leyangjun 
{$Think.get.name}   –url傳的name值,在模板中可以直接拿到輸出
{$Think.get.id}
三、使用函式(模板中對變數直接使用PHP函式)
{$name|strtoupper} 生成的編譯後檔案是 <?php echo (strtoupper($name)); ?> 在生成臨時檔案可見
{$name|date=`Y m d H:i:s`,###}
四、預設值
{$name|default=`這裡是預設值`}
五、運算子
+ – * / % ++ —
$this->assign(`name`,10);
{$name++}   –11


相關文章