今天在公司做新项目的时候,考虑到后期可能会扩展的问题,加上想把代码写得更清晰,更利于管理的基础上,我们就采用了多模块的方式开发,以后要么就是一个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下也蛮合适的,
如有不足之处望指出!