如何给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版)
Oct 09 PHP
php 面试碰到过的问题 在此做下记录
Jun 09 PHP
php学习笔记之面向对象编程
Dec 29 PHP
php检测useragent版本示例
Mar 24 PHP
PHP实现抓取HTTPS内容
Dec 01 PHP
apache中为php 设置虚拟目录
Dec 17 PHP
PHP中类的自动加载的方法
Mar 17 PHP
thinkphp框架page类与bootstrap分页(美化)
Jun 25 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
Apr 17 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
Oct 10 PHP
PHP 判断字符串是中文还是英文, 或者是中英混合
Mar 09 PHP
PHP基本语法
Mar 31 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+MYSQL 出现乱码的解决方法
2008/08/08 PHP
php检测iis环境是否支持htaccess的方法
2014/02/18 PHP
PHP实现对文本数据库的常用操作方法实例演示
2014/07/04 PHP
php实现表单多按钮提交action的处理方法
2015/10/24 PHP
php数组分页实现方法
2016/04/30 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
js 图片轮播(5张图片)
2008/12/30 Javascript
JS 字符串连接[性能比较]
2009/05/10 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
JS链式调用的实现方法
2013/03/07 Javascript
JavaScript数字和字符串转换示例
2014/03/26 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
jquery结合html实现中英文页面切换
2016/11/29 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
捕获未处理的Promise错误方法
2017/10/13 Javascript
electron制作仿制qq聊天界面的示例代码
2018/11/26 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
python GUI实例学习
2017/11/21 Python
Python3实现爬虫爬取赶集网列表功能【基于request和BeautifulSoup模块】
2018/12/05 Python
pytest中文文档之编写断言
2019/09/12 Python
python 链接sqlserver 写接口实例
2020/03/11 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
python re模块常见用法例举
2021/03/01 Python
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
请说出几个常用的异常类
2013/01/08 面试题
气象学专业个人求职信
2014/03/15 职场文书
商场主管竞聘书
2014/03/31 职场文书
踏青活动策划方案
2014/08/19 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
单位租房协议范本
2014/12/03 职场文书