站长之家 - 站长资讯 - 易采站长站

当前位置: > 建站教程 > 源码教程 > CMS 教程 >

phpcms v9添加热门搜索关键词的方法

2017-03-28 21:23 | 来源:易采源码 | 编辑:秋军 |

目前正在用phpcms v9,需要显示热门搜索关键词,Google了几下没找到完善的解决办法。还是DIY吧。通过观察可以发现系统是自带了关键词模型的,只是没有实现。 
或许是放在下一个版本里,呵呵~ DIY就从 /phpcms/model/keyword_model.class.php入手了。 
看一下keyword_model.class.php的内容

defined('IN_PHPCMS') or exit('No permission resources.'); 

	pc_base::load_sys_class('model', '', 0); 

	class keyword_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'; 

	parent::__construct(); 

	} 

	}

从代码可以看出关键词表名叫 keyword 可是我们查看数据库里没有这样的表名。 
那就参照相关搜索数据表 tb_search_keyword(我安装的时候用的是tb做表前缀) 
新建一个热门搜索关键词数据表 keyword

SET FOREIGN_KEY_CHECKS=0; 

	-- ---------------------------- 

	-- Table structure for `tb_keyword` 

	-- ---------------------------- 

	DROP TABLE IF EXISTS `tb_keyword`; 

	CREATE TABLE `tb_keyword` ( 

	`keyword` char(20) NOT NULL, 

	`typeid` tinyint(4) NOT NULL default '0', 

	`searchnums` int(10) unsigned NOT NULL default '0', 

	PRIMARY KEY (`keyword`), 

	UNIQUE KEY `keyword` (`keyword`) 

	) ENGINE=MyISAM DEFAULT CHARSET=gbk;

这样数据表就建好了,接下来就是添加和调用数据了。 
打开文件 /phpcms/models/search/index.php 
找到

//如果开启相关搜索功能 

	if($setting['relationenble']) {

在它上面加入以下代码

//加入搜索关键词记录 imbin 2011/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:get sql="SELECT keyword,typeid FROM tb_keyword WHERE typeid=$typeid 
AND searchnums > 5 ORDER BY rand()" num="5" return="keywords"} 

	{loop $keywords $k=>$v}<a 
href="/index.php?typeid={$v['typeid']}&m=search&c=index&a=init&q={$v['keyword']}">{$v['keyword']}</a>{/loop} 

	{/pc}

这里的排序我用了随机,因为我不想每次都出现一样的,呵呵。 
附上按搜索次数排序的Sql语句:SELECT keyword,typeid FROM tb_keyword WHERE typeid=$typeid ORDER BY searchnums DESC 
如果是在首页调用,需要去掉$typeid。BTW:如果要在非搜索结果页都要去掉$typeid

{pc:get sql="SELECT keyword,typeid FROM tb_keyword ORDER BY searchnums DESC" num="8" return="keywords"} 

	{loop $keywords $k=>$v}<a 
href="/index.php?typeid={$v['typeid']}&m=search&c=index&a=init&q={$v['keyword']}">{$v['keyword']}</a>{/loop} 

	{/pc}

OK了,DIY完成!

采源码下载站小编希望此文对 PHPCMS 用户在使用 PHPCMS 时有所帮助
PHPCMS建站系统下载http://down.easck.com/special/arc-30285.html

  • ECSHOP搜索热门关键字的调用-ECshop教程
  • ECSHOP添加最新交易滚动显示功能-ECshop教程
  • dedecms后台广告管理无法添加的解决办法-DedeCms教程
  • ECSHOP商品详情页添加任意字段的方法-ECshop教程
  • dedecms自定义表单添加发布时间功能的方法-DedeCms教程
  • ECSHOP积分商城添加“金额+积分”的兑换功能-ECshop教程
  • 给dedeims添加在线支付和提现的功能之数据库设置-DedeCms教程
  • ecshop 怎样添加全屏广告?-ECshop教程
  • 教你如何给帝国CMS系统添加登陆失败次数限制-(EmpireCMS)帝国CMS教程
  • dedecms首页添加根据IP访问区域跳转对应页面的方法-DedeCms教程
  • 网友评论

    关于我们 - 联系我们 - 广告服务 - 版权声明 - 人才招聘 - 友情链接 - 网站地图 - 帮助 - -

    CopyRight © 2010-2016 源码下载 easck.com , All Rights Reserved

    蒙公网安备 15052402000103号

    蒙ICP备14002389-1号