如何给phpcms v9增加类似于phpcms 2008中的关键词表


Posted in PHP onJuly 01, 2013

最近用phpcms v9二次开发一个人站点,之前用2008中有个比较舒服的关键词全部显示出来功能,而v9将关键词列表功能增加到了搜索中,如果搜索一个关键词就会自动产生一个增加到了search_keyword表中,这一点不是很喜欢v9;站内搜索功能,我觉得一般会用得比较少,而我们在增加文章的时候实际上就把关键词分隔开了,为什么还要多此一举了,其实改起来也比较简单

在model文件夹中增加一个keyword_ext_model.class.php。keyword_model实际是存在model文件夹中的,不知道为什么没有keyword这张表?

所以还是不要在这个基本上增加,也许将来这个model会用上

<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_sys_class('model', '', 0);
class keyword_ext_model extends model {
    public $table_name = '';
    public function __construct() {
        $this->db_config = pc_base::load_config('database');
        $this->db_setting = 'default';
        $this->table_name = 'keyword_ext';
        parent::__construct();
    }
}
?>

然后创建一张表
CREATE TABLE `t_v9_keyword_ext` (
  `tagid` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `tag` char(50) NOT NULL,
  `style` char(5) NOT NULL,
  `usetimes` smallint(5) unsigned NOT NULL DEFAULT '0',
  `lastusetime` int(10) unsigned NOT NULL DEFAULT '0',
  `hits` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `lasthittime` int(10) unsigned NOT NULL DEFAULT '0',
  `listorder` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `modelid` smallint(6) DEFAULT '0',
  PRIMARY KEY (`tagid`),
  UNIQUE KEY `tag` (`tag`),
  KEY `usetimes` (`usetimes`,`listorder`),
  KEY `hits` (`hits`,`listorder`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

最后一步在phpcms/modules/content/fields/keyword 中增加一个 input.inc.php
function tags($field, $value)
    {
        if(!$value) return '';
        if(strpos($value, ','))
        {
            $s = ',';
        }
        else
        {
            $s = ',';
        }        $keywords = isset($s) ? array_unique(array_filter(explode($s, $value))) : array($value);
        $keyword_db = pc_base::load_model('keyword_ext_model');
        foreach($keywords as $tag)
        {
            $tag = trim($tag);
            $keyword_db->delete(array("tag"=>$tag,"modelid"=>$this->modelid));
            $c=$this->db->count("keywords like '%".$tag."%'");
            $keyword_db->insert(array("modelid"=>$this->modelid,"tag"=>$tag,"usetimes"=>$c,"lastusetime"=>SYS_TIME),false,true);
        }
        return implode($s, $keywords);
}

这样在文章增加关键词的时候,会自动增加到keyword_ext中一份,调用全站tags的时候直接调上这个表就行了。请得先清除全站缓存,否则修改后看不到效果。
PHP 相关文章推荐
文章推荐系统(二)
Oct 09 PHP
一篇入门的php Class 文章
Apr 04 PHP
php中对2个数组相加的函数
Jun 24 PHP
PHP程序员常见的40个陋习,你中了几个?
Nov 20 PHP
PHP中的事务使用实例
May 26 PHP
php操作路径的经典方法(必看篇)
Oct 04 PHP
php实现用户登陆简单实例
Apr 04 PHP
关于php unset对json_encode的影响详解
Nov 14 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 PHP
基于laravel Request的所有方法详解
Sep 29 PHP
php实现JWT(json web token)鉴权实例详解
Nov 05 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 PHP
解析php做推送服务端实现ios消息推送
Jul 01 #PHP
php ios推送(代码)
Jul 01 #PHP
PHP分页效率终结版(推荐)
Jul 01 #PHP
解析php防止form重复提交的方法
Jul 01 #PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 #PHP
php设计模式之单例、多例设计模式的应用分析
Jun 30 #PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 #PHP
You might like
珊瑚虫IP库浅析
2007/02/15 PHP
php实现图片添加水印功能
2014/02/13 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
2016/10/17 PHP
PHP的mysqli_select_db()函数讲解
2019/01/23 PHP
基于jquery的web页面日期格式化插件
2011/11/15 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
Jquery实现textarea根据文本内容自适应高度
2015/04/03 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
深入解析JavaScript的闭包机制
2015/10/20 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
浅析javascript函数表达式
2016/02/10 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
2017/02/16 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
AngularJS实现controller控制器间共享数据的方法示例
2017/10/30 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
javascript实现简易聊天室
2019/07/12 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
python使用cPickle模块序列化实例
2014/09/25 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
Python中super函数的用法
2017/11/17 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
Django 项目通过加载不同env文件来区分不同环境
2020/02/17 Python
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
澳洲本土太阳镜品牌:Quay Australia
2019/07/29 全球购物
Tahari ASL官方网站:高级设计师女装
2021/03/15 全球购物
企划专员岗位职责
2013/12/09 职场文书
优秀求职信范文分享
2013/12/19 职场文书
单位办理社保介绍信
2014/01/10 职场文书
2014乡镇“三八”国际劳动妇女节活动总结
2014/03/01 职场文书
《宋庆龄故居的樟树》教学反思
2014/04/07 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
详解Java七大阻塞队列之SynchronousQueue
2021/09/04 Java/Android
如何使用SQL Server语句创建表
2022/04/12 SQL Server