首頁  >  文章  >  php教程  >  phpcms V9 二次開發------(取得點擊數詳解)

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

WBOY
WBOY原創
2016-10-22 00:00:071412瀏覽

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

pc_base::load_model(‘*<span style="color: #000000;">_model’) 加载数据库模型 
pc_base::load_sys_class(‘classname’) 实例化系统类
pc_base::load_app_class(‘classname’,’admin’) 实例化模块类
pc_base::load_sys_func (‘funcfile’) 调用系统函数库</span>
以上是呼叫模型和實例化物件的四種方法
  pc_base::load_model(‘*_model’) 對應載入 根目錄phpcmsmodel 下方的類別檔案
  pc_base::load_sys_class(‘classname’) 對應載入 根目錄phpcmslibsclasses對應載入 根目錄phpcmslibsclasses
  pc_base::load_app_class(‘classname’,’admin’) 根目錄cmsmodululdeminclass 下的檔案   pc_base::load_sys_func
(‘
funcfile’) 對應載入 根目錄 下面講解一個取得點擊數的實例 
<span style="color: #008080;">1</span> {pc:content action=<span style="color: #800000;">"</span><span style="color: #800000;">lists</span><span style="color: #800000;">"</span> catid=<span style="color: #800000;">"</span><span style="color: #800000;">$catid</span><span style="color: #800000;">"</span> num=<span style="color: #800000;">"</span><span style="color: #800000;">25</span><span style="color: #800000;">"</span> order=<span style="color: #800000;">"</span><span style="color: #800000;">id DESC</span><span style="color: #800000;">"</span> page=<span style="color: #800000;">"</span><span style="color: #800000;">$page</span><span style="color: #800000;">"</span> moreinfo=<span style="color: #800000;">"</span><span style="color: #800000;">1</span><span style="color: #800000;">"</span><span style="color: #000000;">}
</span><span style="color: #008080;">2</span> <span style="color: #000000;">{loop $data $r}
</span><span style="color: #008080;">3</span> {php $db = pc_base::load_model(<span style="color: #800000;">'</span><span style="color: #800000;">hits_model</span><span style="color: #800000;">'</span>);   $_r = $db->get_one(array(<span style="color: #800000;">'</span><span style="color: #800000;">hitsid</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">c-</span><span style="color: #800000;">'</span>.$modelid.<span style="color: #800000;">'</span><span style="color: #800000;">-</span><span style="color: #800000;">'</span>.$r[id])); $views =<span style="color: #000000;"> $_r[views]; }
</span><span style="color: #008080;">4</span> {php $comment_tag = pc_base::load_app_class(<span style="color: #800000;">"</span><span style="color: #800000;">comment_tag</span><span style="color: #800000;">"</span>, <span style="color: #800000;">"</span><span style="color: #800000;">comment</span><span style="color: #800000;">"</span>); $comment_total = $comment_tag->count(array(<span style="color: #800000;">'</span><span style="color: #800000;">commentid</span><span style="color: #800000;">'</span>=><span style="color: #800000;">'</span><span style="color: #800000;">content_</span><span style="color: #800000;">'</span>.$catid.<span style="color: #800000;">'</span><span style="color: #800000;">-</span><span style="color: #800000;">'</span>.$r[id].<span style="color: #800000;">'</span><span style="color: #800000;">-</span><span style="color: #800000;">'</span><span style="color: #000000;">.$modelid));}
</span><span style="color: #008080;">5</span> 25edfb22a4f469ecb59f1190150159c68e9e4758c679b6e9bd5f5bbbcabab88d{date(<span style="color: #800000;">'</span><span style="color: #800000;">Y-m-d H:i:s</span><span style="color: #800000;">'</span>,$r[inputtime])}54bdf357c58b8a65c66d7c19c8e4d114·fb05272ad2051abb3b2706d75eb515df{$r[title]}5db79b134e9f6b82c0b36e0489ee08ed 点击:{$views} 评论数:{<span style="color: #0000ff;">if</span> $comment_total}{$comment_total}{<span style="color: #0000ff;">else</span>}<span style="color: #800080;">0</span>{/<span style="color: #0000ff;">if</span>}bed06894275b65c1ab86501b08a632eb{/<span style="color: #000000;">loop}
</span><span style="color: #008080;">6</span> <span style="color: #000000;">{$pages}
</span><span style="color: #008080;">7</span> {/pc}
其中的第3行是獲取點擊數的方法我們單獨著重解說:
$db = pc_base::load_model('hits_model')  
實例化物件為 $db,載入實例化類別hit_model,該類別的位置在 根目錄phpcmsmodelhit_model.class.php檔案中
<span style="color: #0000ff;">class</span><span style="color: #000000;"> hits_model extends model {
    </span><span style="color: #0000ff;">public</span> $table_name = <span style="color: #800000;">''</span><span style="color: #000000;">;
    </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> function __construct() {
        $</span><span style="color: #0000ff;">this</span>->db_config = pc_base::load_config(<span style="color: #800000;">'</span><span style="color: #800000;">database</span><span style="color: #800000;">'</span><span style="color: #000000;">);
        $</span><span style="color: #0000ff;">this</span>->db_setting = <span style="color: #800000;">'</span><span style="color: #800000;">default</span><span style="color: #800000;">'</span><span style="color: #000000;">;
        $</span><span style="color: #0000ff;">this</span>->table_name = <span style="color: #800000;">'</span><span style="color: #800000;">hits</span><span style="color: #800000;">'</span><span style="color: #000000;">;
        parent::__construct();
    }
}</span>
該類別檔案載入繼承了model類別檔案並且繼承了其內部的方法,所以下面呼叫get_one()方法
 

$_r

=
$db
->

get_one

(
array
(
'hitsid'
=>
'c-'
.
'hitsid'
=>
'c-'. id])) 調用$db對像中的get_one方法該方法位於hits_model繼承的model類中代碼如下
final <span style="color: #0000ff;">public</span> function get_one($<span style="color: #0000ff;">where</span> = <span style="color: #800000;">''</span>, $data = <span style="color: #800000;">'</span><span style="color: #800000;">*</span><span style="color: #800000;">'</span>, $order = <span style="color: #800000;">''</span>, $group = <span style="color: #800000;">''</span><span style="color: #000000;">) {
        </span><span style="color: #0000ff;">if</span> (is_array($<span style="color: #0000ff;">where</span>)) $<span style="color: #0000ff;">where</span> = $<span style="color: #0000ff;">this</span>->sqls($<span style="color: #0000ff;">where</span><span style="color: #000000;">);
        </span><span style="color: #0000ff;">return</span> $<span style="color: #0000ff;">this</span>->db->get_one($data, $<span style="color: #0000ff;">this</span>->table_name, $<span style="color: #0000ff;">where</span><span style="color: #000000;">, $order, $group);
    }</span>
get_one(arr(
'hitsid'
=>
'c-'
.
$modelid
.
'-'
.
$r
[
id
]'
.
$r
[

id])))中傳遞資料中的數位組中的字段的值,其hits 表的結構如下

此時的$_r為該表中的一條數據 數據表中的字段 views 即為該篇文章的點擊次數 所以使用 $_r[views]即可獲取點擊數啦! ! !  註:hitsid 欄位的資料 c-1-2 中 1表示目前模型id 2表示目前文章的id      

  

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn