如何给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模板页面中分页代码的解析
Feb 06 PHP
php学习之流程控制实现代码
Jun 09 PHP
php whois查询API制作方法
Jun 23 PHP
解析dedecms空间迁移步骤详解
May 15 PHP
关于js与php互相传值的介绍
Jun 25 PHP
php设计模式之单例模式使用示例
Jan 20 PHP
php使用pack处理二进制文件的方法
Jul 03 PHP
PHP中两个float(浮点数)比较实例分析
Sep 27 PHP
PHP中each与list用法分析
Jan 08 PHP
php pdo操作数据库示例
Mar 10 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
Laravel5.1框架路由分组用法实例分析
Jan 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冒泡算法详解(递归实现)
2014/11/10 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
PHP生成随机字符串(3种方法)
2015/09/25 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
Js+XML 操作
2006/09/20 Javascript
跟随鼠标旋转的文字
2006/11/30 Javascript
JavaScript 拖拉缩放效果
2008/12/10 Javascript
kmock javascript 单元测试代码
2011/02/06 Javascript
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
Javascript数组Array方法解读
2016/03/13 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
2019/07/10 jQuery
vue与iframe之间的信息交互的实现
2020/04/08 Javascript
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
vue实现移动端项目多行文本溢出省略
2020/07/29 Javascript
原生JavaScript实现购物车
2021/01/10 Javascript
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
python实现telnet客户端的方法
2015/04/15 Python
python中reduce()函数的使用方法示例
2017/09/29 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
pandas重新生成索引的方法
2018/11/06 Python
Django admin model 汉化显示文字的实现方法
2019/08/12 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
2020/04/08 Python
Python函数参数分类原理详解
2020/05/28 Python
Pyinstaller加密打包应用的示例代码
2020/06/11 Python
拉斯维加斯城市观光通行证:Las Vegas Pass
2019/05/21 全球购物
销售主管的自我评价分享
2014/01/03 职场文书
测试工程师职业规划书
2014/02/06 职场文书
财务管理专业求职信
2014/06/11 职场文书
个人简历自荐信
2014/06/26 职场文书
个人典型事迹材料
2014/12/30 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL