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