现阶段已经使用phpcmsv9,需要显示热门搜索关键词。经过两次谷歌搜索,没有找到声音解决方案。让我们自己动手做吧。
通过观察能够发觉系统软件是内置了关键字实体模型的,仅仅沒有完成。也许是放到下一个版本里,呵呵呵~DIY就从/phpcms/model/keyword_model.class.php下手了。
看一下keyword_model.class.php的內容
复制代码编码以下:
defined('IN_PHPCMS')orexit('Nopermissionresources.');
pc_base::load_sys_class('model','',0);
classkeyword_modelextendsmodel{
public$table_name='';
publicfunction__construct(){
$this->db_config=pc_base::load_config('database');
$this->db_setting='default';
$this->table_name='keyword';
parent::__construct();
}
}
从编码能够看得出关键字表全名是keyword但是大家查看数据库里沒有那样的表名。
那么就参考搜索推荐数据分析表tb_search_keyword(我安裝的情况下用的是tb做表作为前缀)
新创建一个受欢迎搜索关键词数据分析表keyword
复制代码编码以下:
SETFOREIGN_KEY_CHECKS=0;
------------------------------
--Tablestructurefor`tb_keyword`
------------------------------
DROPTABLEIFEXISTS`tb_keyword`;
CREATETABLE`tb_keyword`(
`keyword`char(20)NOTNULL,
`typeid`tinyint(4)NOTNULLdefault'0',
`searchnums`int(10)unsignedNOTNULLdefault'0',
PRIMARYKEY(`keyword`),
UNIQUEKEY`keyword`(`keyword`)
)ENGINE=MyISAMDEFAULTCHARSET=gbk;
那样数据分析表就建好啦,接下去便是加上和启用数据信息了。
打开文件/phpcms/models/search/index.php
寻找
复制代码编码以下:
//假如打开搜索推荐作用
if($setting['relationenble']){
在它上边添加下列编码
复制代码编码以下:
//添加搜索关键词纪录imbin2011/9/13
if(!empty($result)){
$this->keyword_log_db=pc_base::load_model('keyword_model');
$res=$this->keyword_log_db->get_one(array('keyword'=>$q,'typeid'=>$typeid));
if($res){
//搜索关键词数1
$this->keyword_log_db->update(array('searchnums'=>'=1'),array('keyword'=>$q));
}else{
$this->keyword_log_db->insert(array('keyword'=>$q,'typeid'=>$typeid,'searchnums'=>1));
}
}
那样就完成了搜索关键词的加上
再讨论一下模版启用的完成,我就用的是get标识。
最先看百度搜索页:/phpcms/templates/default/search/list.html
复制代码编码以下:
{pc:getsql="SELECTkeyword,typeidFROMtb_keywordWHEREtypeid=$typeidANDsearchnums>5ORDERBYrand()"num="5"return="keywords"}
{loop$keywords$k=>$v}<ahref="/index.php?typeid={$v['typeid']}&m=search&c=index&a=init&q={$v['keyword']}">{$v['keyword']}</a>{/loop}
{/pc}
这儿的排列我就用了任意,由于我不愿意每一次都出現一样的,呵呵呵。
另附按检索频次排列的Sql句子:SELECTkeyword,typeidFROMtb_keywordWHEREtypeid=$typeidORDERBYsearchnumsDESC
如果是在主页启用,必须除掉$typeid。BTW:假如要在非百度搜索页必须除掉$typeid
复制代码编码以下:
{pc:getsql="SELECTkeyword,typeidFROMtb_keywordORDERBYsearchnumsDESC"num="8"return="keywords"}
{loop$keywords$k=>$v}<ahref="/index.php?typeid={$v['typeid']}&m=search&c=index&a=init&q={$v['keyword']}">{$v['keyword']}</a>{/loop}
{/pc}
OK了,DIY进行!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)