php url起别名_phpcms v9自定义文章内容页别名(url)

1.模型添加prefix字段,让原有的模型显示自定义html文件名的编辑框

以“文章模型”为例,在该模型中添加字段:

字段类型:单行文本

作为主表字段:是(非常重要,否则在批量生成url中会无法生成自定义字段)

字段名:prefix

字段别名:html文件名(自定义)

字段提示:请输入生成的HTML文件名,为空将系统默认。(自定义)

值唯一:是(你不希望2篇文章的url是同一个吧,如果选否会覆盖上一篇文章)

其余项按需更改即可(最好保持默认)

2.phpcms\modules\content\classes\url.class.php

查找:$day = date('d',$time);(约第67行)

在其下面增加以下代码:

if($content_ishtml) {

if($prefix) {

$cid = $id;

$id = $prefix;

}

}

然后,找到下面这一段代码:

//生成静态 ,在添加文章的时候,同时生成静态,不在批量更新URL处调用

if($content_ishtml && $data) {

$data['id'] = $id;

$url_arr['content_ishtml'] = 1;

$url_arr['data'] = $data;

}

将其中的$data['id'] = $id;改为$data['id'] = $cid;

3.phpcms\modules\content\classes\html.class.php

查找:

$pageurls[$i] = $this->url->show($id, $i, $catid, $data['inputtime'],'','','edit',$upgrade);

(约第117行)修改为:

$pageurls[$i] = $this->url->show($id, $i, $catid, $data['inputtime'],$data['prefix'],'','edit',$upgrade);

4./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']);

因为phpcms生成内容页html文件共有三个地方,所以上面的替换就有三处:

a.创建或编辑内容时会生成HTML

b.“内容管理”里下面有个“批量生成HTML”按钮

c.发布管理的“批量更新内容页”,它又包含了选择模型更新和选择栏目更新

5.添加URL规则

扩展-URL规则管理-添加规则,如下图:

a35538aa9144a6bcd170222f21ce043d.png

{$catdir}/{$id}.html|{$catdir}/{$id}_{$page}.html

然后找到需要生成静态内容页的栏目,修改-生成HTML设置-内容页URL规则 选定上面添加的规则。

6.到此就算大功告成了,赶快试试吧!

说明:该方法基于版本phpcms_v9.5.10_UTF8

已知bug:“值唯一”仅在add添加文章时起作用,在edit编辑文章时尽管文件名重复却不会提示!

补充:

if($content_ishtml) {

if($prefix) {

$prefix = str_replace(" ","-",$prefix);//空格用-代替

$prefix = strtolower($prefix);//大小写全部转小写

$cid = $id;

$id = $prefix;

}

}

参考文章:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值