phpcms v9添加字段,实现自定义html后缀结尾
第一步:添加字段:
在后台” 内容 > 内容相关设置 > 模型管理 > 文章模型字段管理 >添加字段”,添加一个”prefix”的字段,具体名称和设置之类可自己根据需要来调整,
第二步:在phpcms/modules/content/classes/url.class.php 文件的
public function show函数,即69行的array添加$prefix查询。注意有两个,一个是{$prefix},一个是$prefix.
原代码:$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}','{$prefix}','{$page}'),array($categorydir,$catdir,$year,$month,$day,$catid,$id,$prefix,$page),$urlrule);
第三步:在url规则中使用,扩展 > URL规则管理 > 添加或修改URL规则时候添加{$prefix},例如我就添加了一个用于伪静态的url规则:
URL示例 :www.yushanw.cn/news/11.html
URL规则 :{$catdir}/{$prefix}.html
后续修复功能:
一、批量生成的时候获取不到{$prefix}的数据
第一个是:内容管理里下面有个“批量生成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了
二、在删除文章的时候会将所有栏目下的网页全部删除的,所以还需要把phpcms\modules\content\content.php 中的 281行修改成:
$urls = $this->url->show($id, 0, $r['catid'], $r['inputtime'], $r['prefix']);