如何给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 相关文章推荐
PHP中MD5函数使用实例代码
Jun 07 PHP
PHP函数常用用法小结
Feb 08 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
Jun 15 PHP
php下使用iconv需要注意的问题
Nov 20 PHP
javascript,php获取函数参数对象的代码
Feb 03 PHP
php中url函数介绍及使用示例
Feb 13 PHP
php使用PDO操作MySQL数据库实例
Dec 30 PHP
PHP处理数组和XML之间的互相转换
Jun 02 PHP
PHP CURL post数据报错 failed creating formpost data
Oct 16 PHP
php常用字符串String函数实例总结【转换,替换,计算,截取,加密】
Dec 07 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
Aug 06 PHP
浅谈php常用的7大框架的优缺点
Jul 20 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
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
Zend Framework中的简单工厂模式 图文
2012/07/10 PHP
单点登录 Ucenter示例分析
2013/10/29 PHP
php读取文件内容的三种可行方法示例介绍
2014/02/08 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
2016/05/27 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
PHP实现字母数字混合验证码功能
2019/07/11 PHP
XML+XSL 与 HTML 两种方案的结合
2007/04/22 Javascript
学习javascript,实现插入排序实现代码
2011/07/31 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
JavaScript获取/更改文本框的值的实例代码
2013/08/02 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
JavaScript队列的应用实例详解【经典数据结构】
2017/04/12 Javascript
Three.js基础学习之场景对象
2017/09/27 Javascript
layer.open 获取不到表单信息的解决方法
2019/09/26 Javascript
JavaScript实现Tab选项卡切换
2020/02/13 Javascript
基于JavaScript实现贪吃蛇游戏
2020/03/16 Javascript
Django框架中的对象列表视图使用示例
2015/07/21 Python
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
Python结合ImageMagick实现多张图片合并为一个pdf文件的方法
2018/04/24 Python
用于业余项目的8个优秀Python库
2018/09/21 Python
Django实现一对多表模型的跨表查询方法
2018/12/18 Python
Python列表list常用内建函数实例小结
2019/10/22 Python
深入了解Python 变量作用域
2020/07/24 Python
Python通用唯一标识符uuid模块使用案例
2020/09/10 Python
婚礼司仪主持词
2014/03/14 职场文书
安全承诺书
2015/01/19 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
浅谈如何提高PHP代码质量之端到端集成测试
2021/05/28 PHP
Python基于百度AI实现抓取表情包
2021/06/27 Python
详解MongoDB排序时内存大小限制与创建索引的注意事项
2022/05/06 MongoDB