天天看點

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方法

不需要模闆檔案,可以直接輸出模闆内容

dump($content);

$content=str_replace('h1','i',$content);

$this->show($content);

三、模闆中的指派 : 

//$this->assign('name','樂楊俊');  或

$this->name='樂楊俊2';

模闆變量輸出:

一、變量輸出

1.标量輸出  --整型 浮點型 字元型、、、

2.數組輸出

$arr = array('k1'=>'leyangjun','k2'=>'leyangjun2');

$this->assign('name',$arr);

模闆輸出用:

{$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