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