phpcms v9 全站文章點(diǎn)擊排行榜標(biāo)簽

字號:


    我們在做內(nèi)容站地時(shí)候,經(jīng)常需要使用到文章排行榜,但phpcms默認(rèn)地pc調(diào)用標(biāo)簽是需要具體欄目id地,那么如何調(diào)用全站文章地點(diǎn)擊排行榜呢?官方不給方法,我們只好自己創(chuàng)造方法了.步驟如下:
    ①打開phpcmsmodulescontentclassescontent_tag.class.php文件;
    ②找個位置添加以下代碼(首行時(shí)間可以自由修改,方便后期查詢):
    代碼如下:
    /** 2013年4月23日
    * sitehits站點(diǎn)點(diǎn)擊排行
    * @param $data
    */
    function sitehits($data){
    if(emptyempty($data['siteid'])) return false;
    $siteid = intval($data['siteid']);
    $this->hits_db = pc_base::load_model('hits_model');
    $category_content = getcache('category_content','commons');
    $catid = '';
    //獲取站點(diǎn)下所有欄目id
    foreach($category_contentas$key=>$val){
    if($val==$siteid){
    $catid .= $comma.$key;
    $comma=',';
    }
    }
    //獲取點(diǎn)擊排行
    $r = $this->hits_db->select('catid in('.$catid.')','hitsid',$data['limit'],$data['order']);
    $return = array();
    $sitemodel_model_db = pc_base::load_model('sitemodel_model');
    $this->db_config = pc_base::load_config('database');
    $tablepre = $this->db_config['default']['tablepre'];
    foreach($ras$key){
    preg_match_all('/-(d+)-/',$key['hitsid'],$modelid);
    $id = substr($key['hitsid'],(strpos($key['hitsid'],'-',2)+1));
    $tablename = $sitemodel_model_db->get_one(array('modelid'=>$modelid[1][0]),'tablename');
    $this->db->table_name = $tablepre.$tablename['tablename'];
    $return[] = array_merge($return,$this->db->get_one(array('id'=>$id)));
    }
    return$return;
    }
    ③備份文件,以防后期pc程序升級時(shí)被覆蓋;
    ④前端頁面模板調(diào)用方法(示例):
    代碼如下:
    {pc:content action=sitehits siteid=4 num=10 order=views desc cache=3600} {loop $data$r}
    {$r[url]} target=_blank>{$r[title]}
    {/loop}
    {/pc}
    文章結(jié)束.
    :