A-A+

phpcms v9文章别名显示

2015年04月29日 PHP开源系统 评论 1 条 阅读 19 views 次

在折腾 phpcms v9 时,突然发现 phpcms v9 的文章都是按照自定义后缀的规则来显示的,大都是进行id 序列显示的,虽然可以进行伪静态的处理,但总感觉对于 seo 的优化不是很好,现在不都使用文章页别名显示了麽,就好像 wp 里面的文章页一样,只可惜 phpcms v9 并没有这样的功能,喜欢折腾的小伙伴来更改一下吧,下面夏日博客就来教一下大家如何让 phpcms v9 增加怎么一个文章别名的功能。

一、修改model.sql

打开 phpcms\modules\content\fields\model.sql,找到:

`updatetime` int(10) unsigned NOT NULL default '0', 在下面增加代码:

`prefix` char(20) NOT NULL default '',

并在文件的最后一行增加一下代码:

INSERT INTO `$table_model_field` (`modelid`, `siteid`, `field`, `name`, `tips`, `css`, `minlength`, `maxlength`, `pattern`, `errortips`, `formtype`, `setting`, `formattribute`, `unsetgroupids`, `unsetroleids`, `iscore`, `issystem`, `isunique`, `isbase`, `issearch`, `isadd`, `isfulltext`, `isposition`, `listorder`, `disabled`, `isomnipotent`) VALUES($modelid, $siteid, 'prefix', 'html文件名', '请输入生成的HTML文件名,为空将系统默认。', '', 0, 20, '/^[0-9a-z]+$/i', '', 'text', 'array (\n ''size'' => ''20'',\n ''defaultvalue'' => '''',\n ''ispassword'' => ''0'',\n)', '', '', '', 0, 1, 0, 0, 0, 0, 0, 0, 56, 0, 0);

二、修改url.class.php

打开 phpcms\modules\content\classes\url.class.php,找到68行的代码:

$day = date('d',$time); 在下面增加一下代码:

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;

三、修改html.class.php

打开phpcms\modules\content\classes\html.class.php,找到代码:

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

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

到这里,修改的3个文件基本完成,需要注意的是:注意使用英文半角的引号和分号,以免产生错误!

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

可以看出,在上面的修改中,已经定义了一个字段prefix当作html的文件名,但是prefix默认是没有数值的,于是需要在模型自定义字段中添加一个字段:prefix,在发表内容的时候填入自定义的html名称。

具体位置:后台》内容》模型管理》文章模型(也可以是其他模型)》字段管理,添加字段:

字段类型:单行文本,作为主表字段

字段名:prefix

字段别名:html文件名

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

文本框长度:20

数据校验正则:/^[0-9a-z]+$/i

字符长度取值范围:0 20

值唯一:否

以下全选否

备注说明:关于“数据校验正则”这一点,可以为空,这样不限定输入的自定义html名称类型,这样可以输入下划线,中线,不然只能输入字母和数字了。比如https://www.xiariboke.net/products/n7_jingdian.html,就需要输入下划线,那么就设置“数据校验正则”为空就好。

大功告成了,那个模型没有就手工添加下就OK了

标签:

1 条留言  访客:1 条  博主:0 条

  1. 硒特产

    为什么我照做了不起作用呢

给我留言