程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> phpcms V9 二次開發------(獲取點擊數詳解),phpcmsv9

phpcms V9 二次開發------(獲取點擊數詳解),phpcmsv9

編輯:關於PHP編程

phpcms V9 二次開發------(獲取點擊數詳解),phpcmsv9


關於phpcms V9的點擊數的使用應該有不少數是直接調用網上搜索到的代碼,但是對於一些想要深入研究開發的人來說,看到網上的代碼後更是不解,本人這幾天看了看,了解了一些東西,在這裡寫出來分享一下,首先先了解一下基礎知識

pc_base::load_model(‘*_model’) 加載數據庫模型 
pc_base::load_sys_class(‘classname’) 實例化系統類
pc_base::load_app_class(‘classname’,’admin’) 實例化模塊類
pc_base::load_sys_func (‘funcfile’) 調用系統函數庫
以上是調用模型和實例化對象的四種方法   pc_base::load_model(‘*_model’) 對應加載 根目錄\phpcms\model 下面的類文件   pc_base::load_sys_class(‘classname’) 對應加載 根目錄\phpcms\libs\classes 下面的文件   pc_base::load_app_class(‘classname’,’admin’) 對應加載 根目錄\phpcms\modules\admin\classes 下面的文件   pc_base::load_sys_func (‘funcfile’) 對應加載 根目錄\phpcms\libs\functions\ 下面講解一個獲取點擊數的實例 
1 {pc:content action="lists" catid="$catid" num="25" order="id DESC" page="$page" moreinfo="1"}
2 {loop $data $r}
3 {php $db = pc_base::load_model('hits_model');   $_r = $db->get_one(array('hitsid'=>'c-'.$modelid.'-'.$r[id])); $views = $_r[views]; }
4 {php $comment_tag = pc_base::load_app_class("comment_tag", "comment"); $comment_total = $comment_tag->count(array('commentid'=>'content_'.$catid.'-'.$r[id].'-'.$modelid));}
5 <li><span class="rt">{date('Y-m-d H:i:s',$r[inputtime])}</span>·<a href="{$r[url]}" target="_blank"{title_style($r[style])}>{$r[title]}</a> 點擊:{$views} 評論數:{if $comment_total}{$comment_total}{else}0{/if}</li>{/loop}
6 {$pages}
7 {/pc}

其中的第3行是獲取點擊數的方法我們單獨著重解說:

$db = pc_base::load_model('hits_model')  

實例化對象為 $db,加載實例化類hit_model,該類的位置在 根目錄\phpcms\model\hit_model.class.php文件中

class hits_model extends model {
    public $table_name = '';
    public function __construct() {
        $this->db_config = pc_base::load_config('database');
        $this->db_setting = 'default';
        $this->table_name = 'hits';
        parent::__construct();
    }
}
該類文件加載繼承了model類文件並且繼承了其內部的方法,所以下面調用get_one()方法   $_r = $db->get_one(array('hitsid'=>'c-'.$modelid.'-'.$r[id])) 調用$db對象中的get_one方法該方法位於hits_model繼承的model類中代碼如下
final public function get_one($where = '', $data = '*', $order = '', $group = '') {
        if (is_array($where)) $where = $this->sqls($where);
        return $this->db->get_one($data, $this->table_name, $where, $order, $group);
    }

get_one(arr('hitsid'=>'c-'.$modelid.'-'.$r[id]))方法中傳遞的數組為數據表v9_hits中的字段的值,其 hits 表的結構如下

此時的$_r為該表中的一條數據 數據表中的字段 views 即為該篇文章的點擊次數 所以使用 $_r[views]即可獲取點擊數啦!!!

 注:hitsid 字段的數據 c-1-2 中 1表示當前模型id 2表示當前文章的id

 

 

 

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved