discuz模板机制应用

discuz用多了,觉得它的模板确实好用,便将它的数据库操作、模板提取出来,小组了一下,用于单独的开发用。

 

经过一个商城网站的开发,应用已经非常顺手了。商城主站完成后,进行代理网站的开发,其实主要就是应用新的模板,却发现模板部分一开始就没有考虑周全,因为我把后台的模板也写在了模板文件夹里,这就倒至每换一个模板都要将后台的模板跟着复制一遍,非常郁闷。就想把后台的模板和前面分开,看了看discuz模板的几个函数,发现它是有考虑这个目录问题的。

这是调用模板的函数,可以从参数里看出,它是可以定义目录的,那不就方便了,只要把后台的模板单独放在一个文件夹里,在调用的时候加上后台的目录不就行了?理论上是这样的,但测试后,调用是没问题,但模板里调用子模板的时候出现了调用失败,很显示是找错了模板目录。

 

接着看下面的函数:

这个函数是用来判断缓存模板文件是不是存在的,如果不存在或超时了,就调用parse_template($maintpl, $templateid, $tpldir,$timecompare);这个,在template.func.php文件里找到它,可以看出它是传了模板文件夹进来的,但为什么子调用不能成功呢,找到对了调用的正则:

发现stripvtemplate函数,再在下面找到stripvtemplate:

很明显,这个函数没有调用传过来的$tpldir,而是自己把它置为了空,那到最后就成了调用默认设置的模板文件目录了,问题找到了就很好办了,先改正则:

多加一个参数,将模板目录传过来。再改stripvtemplate函数:

加上第三个参数,并将$tpldir=''去掉,这样就好啦。

 

注:代码里有些地方注释掉的,是discuz原有的,我不用,就注释了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值