【UCHome二次开发】模板修改
前一阵在做UCHome的一些修改以满足具体的应用,来做一点总结。涉及的修改都是些小功能或是界面的调整,所以主要涉及的是对于模板的修改,以下归纳一下过程和经验。
1、模板文件定位
确定要修改的模板文件这是第一步。
方法一:URL分析法。查看/config.php,$_SC['template']参数指示的是当前使用的模板文件夹。关于通过URL参数定位模板文件名的方法请参考《【UCHome二次开发】主要文件说明》。
方法二:模板缓存查看法。首先在浏览器中打开想要确定模板的页面,然后把模板缓存文件夹/data/tpl_cache/中的.php模板缓存文件全删掉,刷性浏览器,再次查看模板缓存文件夹便可看到新生产的页面模板缓存文件。根据模板缓存文件的命名规则“template_模板文件夹名_模板文件名.php”,可分析知模板文件名,从而定位到模板文件。至于此方法的缘由请参考《【UCHome二次开发】模板解析》。
方法三:查表法。确定页面的功能,通过查阅《【UCHome二次开发】模板页面说明》来确定页面对应的模板文件。
2、模板文件生效
特别强调,模板文件修改后,需要将模板缓存文件夹/data/tpl_cache/中对应的.php模板缓存文件删除后,才能生效;否则页面生成仍将使用先前缓存的模板文件,而无法看到修改后的结果。
这里提供一种方法,可以使修改模板文件后,不用手动删除缓存的模板文件就能直接看到修改结果。方法为修改/source/function_common.php中的代码
if(!file_exists($objfile)) {
改为
if(!file_exists($objfile)||filemtime($objfile)<filemtime(S_ROOT.'./'.$tpl.'.htm')) {
即可。
因为此方法增加了一次对文件系统的访问,一定程度上会影响性能,所以此处的修改只建议运用在调试服务器上。
3、模板文件修改
在不是很确定修改内容的前提下,建议通过修改缓存的模板文件来调试。因为模板缓存文件是php代码,对我们来说比较熟悉,调试起来相对方便,比如不知道某个变量的值,可以直接用print_r或var_dump打印出来查看。
通过对模板缓存文件的调试我们可以较快地定位我们要修改的地方,后面的修改就是根据UCHome模板语法对模板文件进行修改和测试了。相关的模板语法可参考《【UCHome二次开发】模板语法说明》。
如果能有一些新模块开发的文章就好了,模板机制这些东西一看就明白了。
[回复]
晴枫 8月 25th, 2011 下午11:08 回复:
@PHP网站建设工作室, 新模块模仿者写写就OK了吧
[回复]
这个貌似一般页面OK,在我修改模板下header.htm文件的时候,我每次还是得需要删除缓存,所以看了下你说的那里修改的地方,
修改方法:
// if(!file_exists($objfile)) {
//}
把这个逻辑判断注释掉即可,
也就是在调试阶段每次都执行:
include_once (S_ROOT . ‘./source/function_template.php’);
parse_template($tpl);
[回复]
很好,必须顶
[回复]
写的太好了
[回复]