如何给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 相关文章推荐
第十三节 对象串行化 [13]
Oct 09 PHP
smarty静态实验表明,网络上是错的~呵呵
Nov 25 PHP
PHP教程 变量定义
Oct 23 PHP
深入理解PHP原理之异常机制
Aug 21 PHP
php处理json时中文问题的解决方法
Apr 12 PHP
Codeigniter操作数据库表的优化写法总结
Jun 12 PHP
php实现的Timer页面运行时间监测类
Sep 24 PHP
PHP中怎样防止SQL注入分析
Oct 23 PHP
ThinkPHP连接Oracle数据库
Apr 22 PHP
使用YII2框架实现微信公众号中表单提交功能
Sep 04 PHP
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
Feb 15 PHP
关于Laravel参数验证的一些疑与惑
Nov 19 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
VOLVO车载收音机
2021/03/02 无线电
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
PHP基于工厂模式实现的计算器实例
2015/07/16 PHP
浅谈PHP正则中的捕获组与非捕获组
2016/07/18 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
2017/09/15 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
vue页面跳转实现页面缓存操作
2020/07/22 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
python笔记(2)
2012/10/24 Python
python二分查找算法的递归实现方法
2016/05/12 Python
深入学习Python中的上下文管理器与else块
2017/08/27 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
python 字符串和整数的转换方法
2018/06/25 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
用python给csv里的数据排序的具体代码
2020/07/17 Python
使用html5制作loading图的示例
2014/04/14 HTML / CSS
梅西百货澳大利亚:Macy’s Australia
2017/07/26 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
英国森林假期:Forest Holidays
2021/01/01 全球购物
新闻专业大学生找工作的自我评价
2013/10/30 职场文书
路政管理专业个人自荐信范文
2013/11/30 职场文书
医学专业应届生的自我评价
2014/02/28 职场文书
80后职场人的职业生涯规划
2014/03/08 职场文书
会计师事务所实习证明
2014/11/16 职场文书
教师先进个人材料
2014/12/17 职场文书
清洁工个人工作总结
2015/03/05 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书