如何给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 相关文章推荐
php4的session功能评述(二)
Oct 09 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
Jun 03 PHP
PHP抓取、分析国内视频网站的视频信息工具类
Apr 02 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
Apr 17 PHP
PHP把小数转成整数3种方法
Jun 30 PHP
php实现图片文件与下载文件防盗链的方法
Nov 03 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
php远程下载类分享
Apr 13 PHP
CI框架常用方法小结
May 17 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
Mar 15 PHP
对laravel的session获取与存取方法详解
Oct 08 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和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
php 大数据量及海量数据处理算法总结
2011/05/07 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
2009/09/15 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
JQuery动画与特效实例分析
2015/02/02 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
JS实现三个层重叠点击互相切换的方法
2015/10/06 Javascript
javascript实现对表格元素进行排序操作
2015/11/18 Javascript
微信公众号 客服接口的开发实例详解
2016/09/28 Javascript
bootstrap模态框消失问题的解决方法
2016/12/02 Javascript
vue更改数组中的值实例代码详解
2020/02/07 Javascript
零基础写python爬虫之爬虫框架Scrapy安装配置
2014/11/06 Python
python遍历 truple list dictionary的几种方法总结
2016/09/11 Python
python合并同类型excel表格的方法
2018/04/01 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
tensorflow 保存模型和取出中间权重例子
2020/01/24 Python
Python的赋值、深拷贝与浅拷贝的区别详解
2020/02/12 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
南非最受欢迎的时尚品牌:MRP
2016/09/18 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
幼儿园保育员岗位职责
2014/04/13 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
火锅店的开业营销方案范本!
2019/07/05 职场文书
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
node快速搭建后台的实现步骤
2022/02/18 NodeJs