3.2.1 - 严重 - 未处理
数据库模板无法解析include、layout等与位置相关的标签,除非有VIEW的其他模板解析操作在前面。原因:THEME_PATH可能在template.class.php中使用时还没有定义,从页无法定义与位置有关的文件,也就会对相关的标签无法解析或解析为空。
现象:
1、以内容方式show出来,如果采用了布局layout,结果为空。
2、以内容而非模板文件show时,其中的<include file />都是空的。
解决方法:
在121行开始增加:
// 获取当前主题名称
$theme = $this->getTemplateTheme();
// 获取当前模块
$module = MODULE_NAME;
if(strpos($template,'@')){ // 跨模块调用模版文件
list($module,$template) = explode('@',$template);
}
// 获取当前主题的模版路径
if(!defined('THEME_PATH')){
define('THEME_PATH', C('VIEW_PATH')? C('VIEW_PATH').$theme : APP_PATH.$module.'/'.C('DEFAULT_V_LAYER').'/'.$theme);
} 