thinkphp3.2.3模板布局所有模块都是可以使用的解决方案


今天在公司做新项目的时候,考虑到后期可能会扩展的问题,加上想把代码写得更清晰,更利于管理的基础上,我们就采用了多模块的方式开发,以后要么就是一个Admin和Home,轻轻松松,没什么压力,现在一下子来个多模块,第一个遇到的问题就是公共模板的问题(所有模块都能用的模板布局),thinkphp默认都是在同一模块下的布局,我也在想肯定有某一个配置项能解决这个,但是看了官方的手册和具体的参数配置类,都不能去改变这个,于是我有在网上找到了一篇很不错的文章,虽然版本是3.2.1的,但是对于3.2.3完全适用,而且本人亲测,参考的原文章地址为:http://www.thinkphp.cn/code/633.html,很感谢这边文章给出的启示,大家参考一下,就可以随心所欲的定制的自己布局模板的所在位置了,


废话就不多说了,直接上具体实现过程


①:修改thinkphp框架底层代码(*建议备份一份,不备份也没关系,因为都是框架文件,官方随时也可以下载到)

第一步:找到模板类文件,位置位于:ThinkPHP\Library\Think\Template.class.php

第二步:找到下面这行代码,位置大概位于104行左右

$layoutFile  =  THEME_PATH.C('LAYOUT_NAME').$this->config['template_suffix'];

第三步:将上面的代码替换为下面的代码:

$layoutFile  = empty(C('LAYOUT_PATH'))?THEME_PATH.$array['name'].$this->config['template_suffix']:C('LAYOUT_PATH').C('LAYOUT_NAME').$this->config['template_suffix'];

第四步:再查找下面的这行代码,位置大概在212行左右

$layoutFile =   THEME_PATH.$array['name'].$this->config['template_suffix'];

第五步:将上面的代码替换为下面的代码

$layoutFile  = empty(C('LAYOUT_PATH'))?THEME_PATH.$array['name'].$this->config['template_suffix']:C('LAYOUT_PATH').C('LAYOUT_NAME').$this->config['template_suffix'];

第六步:在Common模块下的配置文件中设置公共Layout目录 'LAYOUT_PATH'=>'Layout路径',就以为自己配置的参考如下(具体路径以你自己的为准),在common模块的conf文件夹下的config.php文件夹中添加如下代码配置项

/*启用模板布局*/
    'LAYOUT_ON'             =>  true, // 是否启用布局
    'LAYOUT_PATH'           =>  'Public/layout/',   //布局模板所在文件夹
    'LAYOUT_NAME'           =>  'common', // 当前布局名称 默认为layout


*附言:启示这个模板未必就一定要放在common模块下,你可以在修改框架底层代码的时候自己定,这里我是偷懒了直接使用别人的做法,另外本人觉得放在common下也蛮合适的,


如有不足之处望指出!







评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值