如何给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(3)
Oct 09 PHP
PHP 和 MySQL 基础教程(二)
Oct 09 PHP
PHP运行时强制显示出错信息的代码
Apr 20 PHP
php将gd生成的图片缓存到memcache的小例子
Jun 05 PHP
PHP实现根据设备类型自动跳转相应页面的方法
Jul 24 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
Jul 01 PHP
php实现在新浪云中使用imagick生成缩略图并上传的方法
Sep 26 PHP
PHP实现二维数组去重功能示例
Jan 12 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
PHP微信公众号开发之微信红包实现方法分析
Jul 14 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 PHP
php使用json-schema模块实现json校验示例
Sep 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
AJAX的跨域访问-两种有效的解决方法介绍
2013/06/22 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
jquery实现心算练习代码
2010/12/06 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
Javascript基础回顾之(一) 类型
2017/01/31 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
妙用Angularjs实现表格按指定列排序
2017/06/23 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
Vue 动态组件components和v-once指令的实现
2019/08/30 Javascript
JavaScript实现简单的弹窗效果
2020/05/19 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
[02:33]2014DOTA2 TI每日综述 LGD涉险晋级DK闯入胜者组
2014/07/14 DOTA
python文件和目录操作方法大全(含实例)
2014/03/12 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
利用Python如何实现数据驱动的接口自动化测试
2018/05/11 Python
pytorch训练imagenet分类的方法
2018/07/27 Python
Python切片操作深入详解
2018/07/27 Python
Python-接口开发入门解析
2019/08/01 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
一套PHP的笔试题
2013/05/31 面试题
线程同步的方法
2016/11/23 面试题
文明倡议书范文
2014/04/15 职场文书
学校领导班子成员查摆问题及整改措施
2014/10/28 职场文书
人事局接收函
2015/01/30 职场文书
2015年学校总务处工作总结
2015/05/19 职场文书
通讯稿格式及范文
2015/07/22 职场文书
OpenCV-Python模板匹配人眼的实例
2021/06/08 Python
linux中nohup和后台运行进程查看及终止
2021/06/24 Python