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


關於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

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM