用过2008版的网友都知道,内容模型在发布内容的时候可以自定义生成的HTML文件名,这个功能对于SEO来说非常有好处,但是到了V9之后却很遗憾,这个功能却没有了,现在你只要对V9进行一个小小的修改即可令V9重新拥有08版的自定义HTML文件名的功能,操作方法如下:
1、修改你需要设置的模型,添加一个字段,配置如下
2、打开/phpcms/modules/content/create_html.php,找到代码
$urls = $this->url->show($r['id'], '', $r['catid'],$r['inputtime']);
批量替换成下面代码(共三处)
$urls = $this->url->show($r['id'], '', $r['catid'],$r['inputtime'], $r['prefix']);
3、打开/phpcms/modules/content/classes/url.class.php,找到代码
$day = date('d',$time);
在其下方插入
$tmp_id = $content_ishtml && $prefix ? $prefix : $id; //增加自定义HTML文件名支持
找到
$urls = str_replace(array('{$categorydir}','{$catdir}','{$year}','{$month}','{$day}','{$catid}','{$id}',
'{$page}'),array($categorydir,$catdir,$year,$month,$day,$catid,$id,$page),$urlrule);
修改为
$urls = str_replace(array('{$categorydir}','{$catdir}','{$year}','{$month}','{$day}','{$catid}','{$id}',
'{$page}'),array($categorydir,$catdir,$year,$month,$day,$catid,$tmp_id,$page),$urlrule);
添加文章,修改文文章试试,发现在批量生成的时候获取不到{$prefix}的数据,郁闷!
分析后找出问题原因:V9系统在批量生成的时候分两个,第一个是内容管理里下面有个“批量生成HTML”;第二个是发布管理的“批量更新内容”他又包含了先择模型生成和不选择模型生成。
所以还要改三个地方!
打开 phpcms/modules/content/create_html.php 文件,查找:
$urls = $this->url->show($r['id'], '', $r['catid'],$r['inputtime']);
替换成下面代码(一共有三处要替换)
$urls = $this->url->show($r['id'], '', $r['catid'],$r['inputtime'],$r['prefix']);
现在就OK了,又发现在删除文章的时候会将所有栏目下的网页全部删除的,所以还需要个步骤。
打开 phpcmsmodulescontentcontent.php 文件,查找 (约297行):
$urls = $this->url->show($id, 0, $r['catid'], $r['inputtime']);
替换为以下代码
$urls = $this->url->show($id, 0, $r['catid'], $r['inputtime'], $r['prefix']);
OK了,非常完美了,去试试吧!
文章来源:http://bbs.phpcms.cn/thread-258203-1-1.html、http://bbs.phpcms.cn/thread-251105-1-1.html