如何给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 相关文章推荐
DOMXML函数笔记
Oct 09 PHP
写一个用户在线显示的程序
Oct 09 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
Jul 23 PHP
PHP header()函数使用详细(301、404等错误设置)
Apr 17 PHP
CURL状态码列表(详细)
Jun 27 PHP
PHP上传图片进行等比缩放可增加水印功能
Jan 13 PHP
ThinkPHP之用户注册登录留言完整实例
Jul 22 PHP
微信公众平台开发之天气预报功能
Aug 31 PHP
基于PHP实现假装商品限时抢购繁忙的效果
Oct 16 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
在thinkphp5.0路径中实现去除index.php的方式
Oct 16 PHP
PHP手机号码及邮箱正则表达式实例解析
Jul 11 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伪造referer实例代码
2008/09/20 PHP
PHP实现图片裁剪、添加水印效果代码
2014/10/01 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
PHP模糊查询的实现方法(推荐)
2016/09/06 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
2019/10/16 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
javascript在IE下trim函数无法使用的解决方法
2014/09/12 Javascript
ionic 上拉菜单(ActionSheet)实例代码
2016/06/06 Javascript
js 判断各种数据类型的简单方法(推荐)
2016/08/29 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
vue实现的上传图片到数据库并显示到页面功能示例
2018/03/17 Javascript
深入浅析js原型链和vue构造函数
2018/10/25 Javascript
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
关于微信小程序获取小程序码并接受buffer流保存为图片的方法
2019/06/07 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
浅析Python中的多重继承
2015/04/28 Python
Python生成随机验证码的两种方法
2015/12/22 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
python2.7实现爬虫网页数据
2018/05/25 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
Python namedtuple命名元组实现过程解析
2020/01/08 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
CSS实现聊天气泡效果
2020/04/26 HTML / CSS
html5版canvas自由拼图实例
2014/10/15 HTML / CSS
大学生简短的自我评价
2014/09/12 职场文书
家庭困难证明
2014/10/12 职场文书
初中班长竞选稿
2015/11/20 职场文书
2016年秋季趣味运动会开幕词
2016/03/04 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
oracle表分区的概念及操作
2021/04/24 Oracle