通過觀察可以發(fā)現(xiàn)系統(tǒng)是自帶了關(guān)鍵詞模型的,只是沒有實現(xiàn),或許是放在下一個版本里,呵呵~ DIY就從 /phpcms/model/keyword_model.class.php入手了.
看一下keyword_model.class.php的內(nèi)容:
- 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();
- }
- }
從代碼可以看出關(guān)鍵詞表名叫 keyword 可是我們查看數(shù)據(jù)庫教程里沒有這樣的表名,那就參照相關(guān)搜索數(shù)據(jù)表 tb_search_keyword,我安裝的時候用的是tb做表前綴.
新建一個熱門搜索關(guān)鍵詞數(shù)據(jù)表 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;
這樣數(shù)據(jù)表就建好了,接下來就是添加和調(diào)用數(shù)據(jù)了,打開文件 /phpcms/models/search/index.php 找到如下代碼:
- //如果開啟相關(guān)搜索功能
- if($setting['relationenble']) {
在它上面加入以下代碼:
- //加入搜索關(guān)鍵詞記錄 imbin 2011/9/13
- if(!emptyempty($result)){
- $this->keyword_log_db = pc_base::load_model('keyword_model');
- $res = $this->keyword_log_db->get_one(array('keyword'=>$q,'typeid'=>$typeid)); //開源軟件:Vevb.com
- if($res) {
- //關(guān)鍵詞搜索數(shù)+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));
- }
- }
這樣就實現(xiàn)了搜索關(guān)鍵詞的添加.
再來看看模板調(diào)用的實現(xiàn),我用的是 get 標簽.
首先看搜索結(jié)果頁:/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}
這里的排序我用了隨機,因為我不想每次都出現(xiàn)一樣的,呵呵.
附上按搜索次數(shù)排序的Sql語句:SELECT keyword,typeid FROM tb_keyword WHERE typeid=$typeid ORDER BY searchnums DESC
如果是在首頁調(diào)用,需要去掉$typeid,BTW:如果要在非搜索結(jié)果頁都要去掉$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}
新聞熱點
疑難解答
圖片精選