如何给phpcms v9增加类似于phpcms 2008中的关键词表
发布时间:2020-12-13 06:29:04 所属栏目:PHP教程 来源:网络整理
导读:最近用phpcms v9二次开发一个人站点,之前用2008中有个比较舒服的关键词全部显示出来功能,而v9将关键词列表功能增加到了搜索中,如果搜索一个关键词就会自动产生一个增加到了search_keyword表中,这一点不是很喜欢v9;站内搜索功能,我觉得一般会用得比较少
最近用phpcms v9二次开发一个人站点,之前用2008中有个比较舒服的关键词全部显示出来功能,而v9将关键词列表功能增加到了搜索中,如果搜索一个关键词就会自动产生一个增加到了search_keyword表中,这一点不是很喜欢v9;站内搜索功能,我觉得一般会用得比较少,而我们在增加文章的时候实际上就把关键词分隔开了,为什么还要多此一举了,其实改起来也比较简单在model文件夹中增加一个keyword_ext_model.class.php。keyword_model实际是存在model文件夹中的,不知道为什么没有keyword这张表? 所以还是不要在这个基本上增加,也许将来这个model会用上<div class="codetitle"><a style="CURSOR: pointer" data="73319" class="copybut" id="copybut73319" onclick="doCopy('code73319')"> 代码如下:<div class="codebody" id="code73319"><?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(); } } ?> 然后创建一张表<div class="codetitle"><a style="CURSOR: pointer" data="65033" class="copybut" id="copybut65033" onclick="doCopy('code65033')"> 代码如下:<div class="codebody" id="code65033">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<div class="codetitle"><a style="CURSOR: pointer" data="43007" class="copybut" id="copybut43007" onclick="doCopy('code43007')"> 代码如下:<div class="codebody" id="code43007">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的时候直接调上这个表就行了。<FONT style="COLOR: #ff0000">请得先清除全站缓存,否则修改后看不到效果。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |