TP3.2框架運用layout實現bootstrap模板布局


首先可以看看http://document.thinkphp.cn/manual_3_2.html#template_layout里面的說明

bootstrap布局樣式可以參考:v3.bootcss.com

然后我們再進行下一步的理解:

1.在config文件中添加如下配置

1     'LAYOUT_ON'=>true,
2     'LAYOUT_NAME'=>'layout',

2.開啟了layout布局之后我們所展示的代碼就需要變化了

  首先,我們要在view下面創建一個文件夾Public,文件夾里面包含兩個文件分別是header.html 和  footer.html

  然后,我們把下載好的模板文件中的index頁面的頭部和尾部分別放進上面兩個對應的.html文件里面,並且把content部分刪掉

  再次,直接在view底下創建一個文件為:layout.html

  具體如下:

  

  這個時候我們需要在layout.html里面做一些代碼編輯

  如圖:

     注意:你改變以后的header和footer要把樣式全部引用上,並且注意頁面分離,header里面只放頭菜單等等,footer里面放的是內容下面的東西

如圖:

 

這樣,頁面布局就已經搭建好了,這個時候在配合控制器用一下:

 

比如我在index控制器寫了如下代碼:

 1 <?php
 2 namespace Home\Controller;
 3 use Think\Controller;
 4 class IndexController extends Controller {
 5     public function index(){
 6         $this->display('index');
 7     }
 8 
 9     public function test(){
10         $this->display('test');
11     }
12 }

這樣的話 就要在view下面創建一個名字為Index的文件夾里面放一個index.html和test.html文件

然后,我們編輯一下這兩個文件:

index.html

<div style="margin-top:20px;">
      這是一個研究成功的布局文件!
</div>

test.html

<div id="main" name="main">
    在不開啟LAYOUT_ON布局模板之前,會直接渲染 Application/Home/View/User/add.html 模板文件,開啟之后,首先會渲染Application/Home/View/layout.html 模板,布局模板的寫法和其他模板的寫法類似,本身也可以支持所有的模板標簽以及包含文件,區別在於有一個特定的輸出替換變量{__CONTENT__},例如,下面是一個典型的layout.html模板的寫法:


讀取layout模板之后,會再解析User/add.html 模板文件,並把解析后的內容替換到layout布局模板文件的{CONTENT} 特定字符串。

當然可以通過設置來改變這個特定的替換字符串,例如:

    'TMPL_LAYOUT_ITEM'      =>  '{__REPLACE__}'

    一個布局模板同時只能有一個特定替換字符串。

采用這種布局方式的情況下,一旦User/add.html 模板文件或者layout.html布局模板文件發生修改,都會導致模板重新編譯。

如果需要指定其他位置的布局模板,可以使用:

    'LAYOUT_NAME'=>'Layout/layoutname',

就表示采用Application/Home/View/Layout/layoutname.html作為布局模板。
</div>

  

這些內容是隨便添加的,這個時候看效果:

 

 

 

 

 

 

 

如果不想讓布局信息出現在頁面,比如說登錄頁面,這肯定是不能有已經布局好的菜單啊什么的把

所以

 

 

注意了嗎?我加了一個{__NOLAYOUT__}

這樣就可以了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM