如何给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中的cookie
Nov 26 PHP
防止MySQL注入或HTML表单滥用的PHP程序
Jan 21 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
Dec 19 PHP
PHP漏洞全解(详细介绍)
Nov 13 PHP
使用PHP实现Mysql读写分离
Jun 28 PHP
php字符串截取函数用法分析
Nov 25 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
Jan 08 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
Jun 12 PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 PHP
tp5实现微信小程序多图片上传到服务器功能
Jul 16 PHP
PHP一致性hash分布式算法封装类定义与用法示例
Aug 04 PHP
ThinkPHP5.1的权限控制怎么写?分享一个AUTH权限控制
Mar 09 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
PHP4实际应用经验篇(3)
2006/10/09 PHP
dedecms模板标签代码官方参考
2007/03/17 PHP
理解php Hash函数,增强密码安全
2011/02/25 PHP
PHP分多步骤填写发布信息的简单方法实例代码
2012/09/23 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
PHP实现远程下载文件到本地
2015/05/17 PHP
PHP编写学校网站上新生注册登陆程序的实例分享
2016/03/21 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
javascript遍历控件实例详细解析
2014/01/10 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
javascript的变量、传值、传址、参数之间关系
2015/07/26 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
jquery.form.js异步提交表单详解
2017/04/25 jQuery
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
JavaScript求一组数的最小公倍数和最大公约数常用算法详解【面向对象,回归迭代和循环】
2018/05/07 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
2019/01/23 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
简单谈谈Python中函数的可变参数
2016/09/02 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
django框架模型层功能、组成与用法分析
2019/07/30 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
python飞机大战pygame游戏背景设计详解
2019/12/17 Python
将python文件打包exe独立运行程序方法详解
2020/02/12 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
党支部公开承诺践诺书
2014/03/28 职场文书
结对共建协议书
2014/08/20 职场文书
开学第一周日记(三篇范文)
2019/08/23 职场文书
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js