如何给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+DBM的同学录程序(3)
Oct 09 PHP
php 数组的一个悲剧?
May 11 PHP
PHP数组 为文章加关键字连接 文章内容自动加链接
Dec 29 PHP
PHP无限分类(树形类)的深入分析
Jun 02 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
Jul 03 PHP
自编函数解决pathinfo()函数处理中文问题
Nov 03 PHP
ThinkPHP模版引擎之变量输出详解
Dec 05 PHP
PHP实现C#山寨ArrayList的方法
Jul 16 PHP
PHP定时执行任务实现方法详解(Timer)
Jul 30 PHP
PHP简单实现断点续传下载的方法
Sep 25 PHP
前端必学之PHP语法基础
Jan 01 PHP
PHP数组访问常用方法解析
Sep 05 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
用文本文件实现的动态实时发布新闻的程序
2006/10/09 PHP
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
php中的三元运算符使用说明
2011/07/03 PHP
php图片缩放实现方法
2014/02/20 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
php中引用符号(&amp;)的使用详细介绍
2016/12/06 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
php文件操作之文件写入字符串、数组的方法分析
2019/04/15 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
Jquery Ajax方法传值到action的方法
2014/05/11 Javascript
PHP中使用微秒计算脚本执行时间例子
2014/11/19 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
项目实践一图片上传之form表单还是base64前端图片压缩(前端图片压缩)
2016/07/28 Javascript
全屏滚动插件fullPage.js使用实例解析
2016/10/21 Javascript
微信小程序 地图(map)实例详解
2016/11/16 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
详解如何去除vue项目中的#——History模式
2017/10/13 Javascript
解决angularJS中input标签的ng-change事件无效问题
2018/09/13 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
利用python画一颗心的方法示例
2017/01/31 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
Django实现支付宝付款和微信支付的示例代码
2018/07/25 Python
Python常用特殊方法实例总结
2019/03/22 Python
django使用xadmin的全局配置详解
2019/11/15 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
以色列的身体护理及家居香薰品牌:Sabon NYC
2018/02/23 全球购物
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
学生档案自我鉴定
2013/10/07 职场文书
中学生操行评语大全
2014/04/24 职场文书