行健网络

?找回密码
?立即注册
查看: 5917|回复: 0
打印 上一主题 下一主题

PHPCMS中栏目生成html静态页面的说明

[复制链接]
跳转到指定楼层
楼主
发表于 2014-8-27 16:49:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

在PHPCMS中,将栏目页面设置成静态页面,是在后台栏目管理中的“生成HTML设置”选项卡中进行相关参数的设置。其中参数的含义也是相当简单明了的。但是对于最后的一个参数(是否生成到根目录)的设置所产生的结果并不像我们按照字面意义所想像的那么简单。

那么它的作用真得是完全按照它的字面意思实现它的功能吗?对于一级栏目是没有问题的,而对于二级栏目来说,问题就没有这么简单了,确定二级栏目是否生成在根目录并不完全由这个值决定 ;如果不生成在根目录就一定在 caches/configs/system.php 中指定的 html_root 目录中吗,这个对于二级栏目来说完全是错误的。

不喜欢代码的,可直接看下面的总结

老规矩,还是从原代码来解析吧?到哪个原代码去查找呢?既然是生成栏目静态页面,我们可以从后台栏目管理中的“批量更新栏目页”的表单中去查找它的处理程序。

可以看出生成栏目的处理程序是属于content模块,控件器为create_html,调用控件器中的方法category,模块与控件器的说明请见各功能模块运行流程内容管理系统MVC设计模式说明

在/phpcms/modules/content/目录中找到create_html.php文件,在该文件中找到category方法,从该方法可以看出真正生成html的是调用了/phpcms/modules/content/classes/html.php类文件中的category方法。现贴出它的代码


请看74-79行以及99行处的代码。当$create_to_html_root为1时,也就是生成到根目录,如果为默认站点,那么生成路径为PHPCMS_PATH . $basefile;当$create_to_html_root为0时,也就是不生成到根目录,那么就在在caches/configs/system.php 中指定的 html_root(我称它为静态页面生成路径) 目录中:PHPCMS_PATH.substr($this->html_root,1).$base_file。

也就是说是否生成到根目录(对一级栏目可以这样说,而对于二级栏目来说不全对)由$create_to_html_root的值的确定,而这个值取自栏目缓存(缓存文件为/caches/caches_commons/caches_data/category_content_$siteid.cache.php)sethtml字段的值,并不是我们在栏目管理中设置生成html静态选项时最后一个参数的值(也就是栏目缓存create_to_html_root字段的值,在这里大家一定要注意,变量$create_to_html_root的值与后台参数字段create_to_html_root的值是各有所指的)。栏目缓存sethtml字段的值是由系统处理之后生成的值。如果为一级栏目,sethtml的值与后台参数字段$CAT[create_to_html_root]的值是一致的,如果为子栏目则后台参数字段$CAT[sethtml]的值与父栏目的后台参数字段$CAT[sethtml]值一致(sethtml生成的原代码大家可以到/phpcms/modules/admin/categoy.php中去查找。后面会有提及)。

也就是说二级栏目的后台参数字段$CAT[create_to_html_root]的值可以与后台参数字段$CAT[sethtml]的值不一致,那么二级栏目的后台参数字段$CAT[create_to_html_root]的值到底有什么用呢?

栏目页的生成路径由两部分组成:PHPCMS_PATH或PHPCMS_PATH.substr($this->html_root,1)与$basefile组成。前部分说明的是是否生成在根目录,后部分说明的是当前目录路径。

再看代码49行,如果后台参数字段$CAT[create_to_html_root]的值为1,则$basefile中的父路径取消为空,也就是说$basefile中不包括父路径,一级栏目本来没有父路径,所以这一句是针对子栏目来说的。也就是二级栏目的后台参数字段$CAT[create_to_html_root]的值确定是否启用父栏目。当其值为1时,不启用父栏目,否则启用父栏目。

根据上面的分析我们来总结下二级栏目页生成静态页面的路径情况:


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|网站地图|行健网络

GMT+8, 2019-10-16 11:14 , Processed in 0.159910 second(s), 14 queries .

Powered by Discuz! X3.2

? 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表