1. 程式人生 > >【phpcms-v9】為phpcms-v9新增熱門搜尋關鍵詞

【phpcms-v9】為phpcms-v9新增熱門搜尋關鍵詞

目前正在用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='';
    
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

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
--
 Table structure for `tb_keyword`
--
 ----------------------------DROPTABLEIFEXISTS `tb_keyword`;
CREATETABLE `tb_keyword` (
  `keyword` 
char(20NOTNULL,
  `typeid` 
tinyint(4NOTNULLdefault'0',
  `searchnums` 
int(10) unsigned 
NOTNULLdefault'0',
  
PRIMARYKEY  (`keyword`),
  
UNIQUEKEY `keyword` (`keyword`)
) ENGINE
=MyISAM DEFAULT CHARSET=gbk;

這樣資料表就建好了,接下來就是新增和呼叫資料了。

開啟檔案 /phpcms/models/search/index.php

找到

//如果開啟相關搜尋功能if($setting['relationenble']) {

在它上面加入以下程式碼

//加入搜尋關鍵詞記錄 imbin 2011/9/13if(!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}
<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}
<href="/index.php?typeid={$v['typeid']}&m=search&c=index&a=init&q={$v['keyword']}">{$v['keyword']}a>{/loop}
                          {/pc}

OK了,DIY完成!


相關推薦

phpcms-v9phpcms-v9新增熱門搜尋關鍵詞

目前正在用phpcms v9,需要顯示熱門搜尋關鍵詞,Google了幾下沒找到完善的解決辦法。 還是DIY吧。 通過觀察可以發現系統是自帶了關鍵詞模型的,只是沒有實現。 或許是放在下一個版本里,呵呵~ DIY就從 /phpcms/model/keyword_mode

phpcms-v9利用phpcms-v9站群功能建立多個分站

用一套CMS軟體系統,做多個網站,統一管理,使用者可以互通,這就是所謂的站群功能。這對於運營和維護都能節省很多時間,否則要同時除錯和維護不同系統會非常吃力。 我在用PHPcms v9做了zhencms1.com網站時,打算嘗試下站群功能,新站(或分站)名稱是“女性站點

js 基礎 什麽 call 比 apply 快?

如果 分享 叠代 [1] get blank 3.4 -a case 這是一個非常有意思的問題。 在看源碼的過程中,總會遇到這樣的寫法: 1 var triggerEvents = function(events, args) { 2 var ev, i

SpringSecurity系列SpringBoot整合SpringSecurity新增驗證碼登入

上一篇博文已經介紹過了SpringSecurity的表單登入,這裡我們基於上一篇的基礎上,新增一個驗證碼進行登入,登入頁面效果圖,如圖所示: 首先我們需要建立驗證碼的生成規則,首先建立一個驗證碼的實體: public class ImageCode { /** 驗證碼 */

7.11Date類過載“+”運算子,實現在某一個日期上(月、日、年)加一個天數。

#include<iostream.h>  class Date   {      int month;      int day;      int year;  public:     Date(){}      Date(int i)     {day=i;      m

JUnit實戰應用程式Controller設計單元測試

在本章中,我們為一個簡單但完整的應用程式controller建立了一個測試用例。測試用例並不是測試單個的元件,而是檢驗多個組例,如何一起工作。我們從一個可以用於任何類的簡單測試用例開始.然後把新的測試逐個新增到測試用例中,直到所有初始的元件都被測試到。由於斷言變

踩坑base64編碼的圖片生成截圖不顯示

問題 在effevo中設定個人頭像時,會有無法顯示的情況,還不穩定重現,終於抓到問題原因,下面分享下解決方法 解決方法 先看下原始寫法 var imgBase64='data:image/png;base64,iVBORw0KGgoAAAANSU

Python3爬蟲什麽你的博客沒人看呢?

需要 相關 數據量 block form table 進行 for 不能 我相信對於很多愛好和習慣寫博客的人來說,如果自己的博客有很多人閱讀和評論的話,自己會非常開心,但是你發現自己用心寫的博客卻沒什麽人看,多多少少會覺得有些傷心吧?我們今天就來看一下為什麽你的博客沒人看呢

程式碼筆記iOS-UIActionSheet動態新增按鈕

一,效果圖。 二,程式碼。 RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController :

iOS開發如何給字串新增超連線(響應事件)

首先,我們在開發的過程中,會遇到這樣的問題。比如:點選某一部分的文字跳轉到另一介面。無論是登入協議,保險協議等等吧。 點選使用者協議——》跳轉協議介面 但是UITextView提供了新增超連線的方法,ios7.0之後使用。或許你可以使用UILabel屬性字串和UIButt

Android StudioAndroid Studio設定HTTP代理

大陸的牆很厚很高,初次安裝Android Studio下載SDK等必定失敗,設定代理方法如下: 1.  到android studio安裝目錄,開啟bin目錄,編輯idea.properties, 在檔案末尾新增: disable.android.first.run=t

worldwind學習worldwind android版新增天地圖切片圖層

在國內還是天地圖速度快又清晰,google中國版的有偏移,國外版的被封鎖,還是天地圖首選! /* * Copyright (c) 2017 United States Government as represented by the Administrator of t

Python學習筆記- 廖雪峰教程python 2//繼續學習爬蟲準備-02 [待完善]

裝飾器的作用: 1 簡化程式碼,避免每個函式編寫重複性程式碼:列印日誌@log,檢測效能 @performance,資料庫事務 @transaction,URL路由@post('/register') import time def performance(f):

小作業NLog自定義LayoutRenderer

長話短說   前文《解剖HttpClientFactory,自由擴充套件HttpMessageHandler》主要想講如何擴充套件HttpMessageHandler,  示例為在每個Http請求中的日誌中顯示TraceId, 現在來完成課後的小作業: 將TraceId顯示到Nlog的Layou

徵文活動自己發“聲” —— 聲網RTC徵文大賽在園子裡徵稿

2020年8月20日,聲網Agora入駐園子的新樓盤——部落格園品牌專區。9月,我們與聲網Agora再度合作,「為自己發“聲”— RTC 徵文大賽」在園子裡徵稿。 RTC(Real-time Communication)徵文大賽是由聲網Agora

C / EasyX隨機迷宮生成和路徑搜尋(DFS)

==========================================說明=====================================1.用了寫遊戲的基本流程所以介面是持續重新整理的(可能會改成遊戲)2.迷宮生成演算法是深度優先遍歷(DFS),

LeetCode筆記113. Path Sum II DFS搜尋+記錄節點

題目: Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum. For example:Given the below

docker ElasticsearchRest風格的分散式開源搜尋和分析引擎Elasticsearch初體驗

目錄 概述: 2、問題 二:安裝kibana 1、安裝 2、問題 貳:Elastic search初體驗 一:新增資料

phpcms-v9phpcms-v9視訊模型的新增

<a href="javascript:void();" title="清空集數,系統自動從第1集重新排列,適用於集數錯亂時">校正集數</a> <a href="javascript:void();" title="增加一行以便手工填寫">增加一行</a> &

phpcms-v9phpcms-v9新增廣告聯盟程式碼

廢話在前:很多PC站長不知道如何在後臺新增廣告聯盟的程式碼,甚至還抱怨沒有這個功能!(懶惰不願嘗試)讓我來給你挖掘這個小功能吧。【教程】:步驟一:登入後臺->模組->廣告->新增版位  (如圖P1) ->確定 P1步驟二:新增廣告(如圖P2) -&g