thinkphp
thinkphp copied to clipboard
视图类View.class.php中parseTemplate方法存在的严重BUG
以下是方法parseTemplate中关于获取路径的设定 ` // 获取当前主题的模版路径
defined('THEME_PATH') or define('THEME_PATH', $this->getThemePath($module));
` 此处以常量方式保存了模板路径,并且包含了Module文件夹名称,导致如果在一次脚本只能获取一个Module下面的模板路径,当以后再使用本函数获取路径时将无法再获取其他Module下的模板。 建议THEME_PATH并不包含Module文件夹名称。或者在此不要使用常量保存。 辛苦作者及时更新。
发现这个问题其实是设计思想问题,现在的临时解决方案是使用绝对路径来渲染模板来避免。否则需要同时修改 fetch 方法 parseTemplate 方法 还有Template类的loadTemplate方法
旧版的设计没有针对一个请求多次输出的情况,事实上这种情况非常的少
其实不是一次请求多次输出,而是在主模板中动态输出一些片段,用的是View->Fetch,现在通过使用绝对路径来避免次问题
建议可以 @ModelName:ViewPath:ViewSubPath:file.html
@loveblue 动态输出片段 还不如直接用widget呢