如何给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,不用COM,生成excel文件
Oct 09 PHP
PHPLog php 程序调试追踪工具
Sep 09 PHP
php遍历目录viewDir函数
Dec 15 PHP
PHP下打开URL地址的几种方法小结
May 16 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
Jun 05 PHP
php中mkdir函数用法实例分析
Nov 15 PHP
Symfony2使用第三方库Upload制作图片上传实例详解
Feb 04 PHP
浅谈php中fopen不能创建中文文件名文件的问题
Feb 06 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
Oct 15 PHP
php探针使用原理和技巧讲解
Sep 17 PHP
PHP实现文件上传后台处理脚本
Mar 04 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实现ftp上传文件示例
2014/08/21 PHP
php实现简单的上传进度条
2015/11/17 PHP
php设计模式之委托模式
2016/02/13 PHP
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
基于jQuery的试卷自动排版系统实现代码
2011/01/06 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
Javascript浅谈之引用类型
2013/12/18 Javascript
JS对文本框值的判断示例
2014/03/10 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
js获取元素外链样式的方法
2015/01/27 Javascript
javascript实现多级联动下拉菜单的方法
2015/02/06 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
JavaScript中Date对象的常用方法示例
2015/10/24 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
详解react native页面间传递数据的几种方式
2018/11/07 Javascript
微信小程序自定义弹出层效果
2020/05/26 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
星球大战与Python之间的那些事
2016/01/07 Python
python tensorflow基于cnn实现手写数字识别
2018/01/01 Python
浅谈Pycharm中的Python Console与Terminal
2019/01/17 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
Django中的AutoField字段使用
2020/05/18 Python
django的403/404/500错误自定义页面的配置方式
2020/05/21 Python
Python如何获取文件路径/目录
2020/09/22 Python
澳大利亚首个在线预订旅游网站:Wotif
2017/07/19 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
python+selenium小米商城红米K40手机自动抢购的示例代码
2021/03/24 Python
美术专业学生个人自我评价
2013/09/19 职场文书
总经理文秘岗位职责
2014/02/03 职场文书
《小小雨点》教学反思
2014/02/18 职场文书
《称象》教学反思
2014/04/25 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
MySQL中使用or、in与union all在查询命令下的效率对比
2021/05/26 MySQL
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL