如何给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 相关文章推荐
用缓存实现静态页面的测试
Dec 06 PHP
在同一窗体中使用PHP来处理多个提交任务
May 08 PHP
PHP伪静态写法附代码
Jun 20 PHP
php 正则 过滤html 的超链接
Jun 02 PHP
php class中public,private,protected的区别以及实例分析
Jun 18 PHP
解析Extjs与php数据交互(增删查改)
Jun 25 PHP
PHP实现过滤各种HTML标签
May 17 PHP
thinkPHP3.1验证码的简单实现方法
Apr 22 PHP
php事件驱动化设计详解
Nov 10 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
php 删除一维数组中某一个值元素的操作方法
Feb 01 PHP
laravel框架关于搜索功能的实现
Mar 15 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
Body是什么,该怎么喝出咖啡里的口感
2021/03/03 咖啡文化
基于mysql的bbs设计(四)
2006/10/09 PHP
php生成短域名函数
2015/03/23 PHP
php按字符无乱码截取中文的方法
2015/03/27 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
PHP类的自动加载与命名空间用法实例分析
2020/06/05 PHP
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
element-ui 中的table的列隐藏问题解决
2018/08/24 Javascript
vue 实现小程序或商品秒杀倒计时
2019/04/14 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
vue中利用iscroll.js解决pc端滚动问题
2020/02/15 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
2020/08/22 Javascript
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
使用numba对Python运算加速的方法
2018/10/15 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
Python编程深度学习计算库之numpy
2018/12/28 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
分享一个H5原生form表单的checkbox特效代码
2018/02/26 HTML / CSS
德国高品质男装及配饰商城:Cultizm(Raw Denim原色牛仔裤)
2018/04/16 全球购物
益模软件Java笔试题
2012/03/27 面试题
生日宴会答谢词
2014/01/09 职场文书
服务员自我评价
2014/01/25 职场文书
机关单位人员学雷锋心得体会
2014/03/10 职场文书
老公爱的承诺书
2014/03/31 职场文书
入党思想汇报怎么写
2014/04/03 职场文书
小学班干部竞选演讲稿
2014/04/24 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
领导干部群众路线个人对照检查材料思想汇报
2014/09/30 职场文书
2015年高中语文教学总结
2015/08/18 职场文书
广告文案的撰写技巧(实用干货)
2019/08/23 职场文书
SpringMVC 整合SSM框架详解
2021/08/30 Java/Android
Mysql事务索引知识汇总
2022/03/17 MySQL