• <ul id="cgeq2"></ul>
  • 歡迎您光臨深圳塔燈網(wǎng)絡(luò)科技有限公司!
    電話圖標 余先生:13699882642

    網(wǎng)站百科

    為您解碼網(wǎng)站建設(shè)的點點滴滴

    Phpcms V9 調(diào)用全站文章排行的解決方案_PHPCms教程

    發(fā)表日期:2019-12 文章編輯:小燈 瀏覽次數(shù):4611

    今天忙于修改網(wǎng)站界面,想在首頁添加瀏覽排行功能,卻發(fā)現(xiàn)Phpcms竟然不支持調(diào)用全站文章排行。下午仔細研究了Phpcms源碼,終于找到解決辦法。

    默認情況下,Phpcms只支持調(diào)用當前文章排行,代碼如下:

    {pc:content  action="hits" catid="$catid" num="10" order="views DESC" cache="3600"}

    其中$catid為待調(diào)用欄目的id,如果想實現(xiàn)全站調(diào)用,需要修改phpcms\modules\content\classes\content_tag.class.php文件,找到以下函數(shù):

     
    1.     /** 
    2.  * 排行榜標簽 
    3.  * @param $data 
    4.  */ 
    5. public function hits($data) { 
    6.     $catid = intval($data['catid']); 
    7.     if(!$this->set_modelid($catid)) return false; 
    8.   
    9.     $this->hits_db = pc_base::load_model('hits_model'); 
    10.     $sql = $desc = $ids = ''
    11.     $array = $ids_array = array(); 
    12.     $order = $data['order']; 
    13.     $hitsid = 'c-'.$this->modelid.'-%'
    14.     $sql = "hitsid LIKE '$hitsid'"
    15.     if(isset($data['day'])) { 
    16.         $updatetime = SYS_TIME-intval($data['day'])*86400; 
    17.         $sql .= " AND updatetime>'$updatetime'"
    18.     } 
    19.     if($this->category[$catid]['child']) { 
    20.         $catids_str = $this->category[$catid]['arrchildid']; 
    21.         $pos = strpos($catids_str,',')+1; 
    22.         $catids_str = substr($catids_str$pos); 
    23.         $sql .= " AND catid IN ($catids_str)"
    24.     } else { 
    25.         $sql .= " AND catid='$catid'"
    26.     } 
    27.     $hits = array(); 
    28.     $result = $this->hits_db->select($sql'*'$data['limit'], $order); 
    29.     foreach ($result as $r) { 
    30.         $pos = strpos($r['hitsid'],'-',2) + 1; 
    31.         $ids_array[] = $id = substr($r['hitsid'],$pos); 
    32.         $hits[$id] = $r
    33.     } 
    34.     $ids = implode(','$ids_array); 
    35.     if($ids) { 
    36.         $sql = "status=99 AND id IN ($ids)"
    37.     } else { 
    38.         $sql = ''
    39.     } 
    40.     $this->db->table_name = $this->tablename; 
    41.     $result = $this->db->select($sql'*'$data['limit'],'','','id'); 
    42.     foreach ($ids_array as $id) { 
    43.         if($result[$id]['title']!='') { 
    44.             $array[$id] = $result[$id]; 
    45.             $array[$id] = array_merge($array[$id], $hits[$id]); 
    46.         } 
    47.     } 
    48.     return $array

    修改代碼(見注釋):

     
    1. /** 
    2.  * 排行榜標簽 
    3.  * @param $data 
    4.  */ 
    5. public function hits($data) { 
    6.     $catid = intval($data['catid']); 
    7.   
    8.     $this->hits_db = pc_base::load_model('hits_model'); 
    9.     $sql = $desc = $ids = ''
    10.     $array = $ids_array = array(); 
    11.     $order = $data['order']; 
    12.     $hitsid = 'c-'.$this->modelid.'-%'
    13.     $sql = "hitsid LIKE '$hitsid'"
    14.     if(isset($data['day'])) { 
    15.         $updatetime = SYS_TIME-intval($data['day'])*86400; 
    16.         $sql .= " AND updatetime>'$updatetime'"
    17.     } 
    18.     if(!emptyempty($catid) && $catid>0) { //添加判斷:id是否為空 
    19.         if(!$this->set_modelid($catid)) return false; 
    20.         if($this->category[$catid]['child']) { 
    21.             $catids_str = $this->category[$catid]['arrchildid']; 
    22.             $pos = strpos($catids_str,',')+1; 
    23.             $catids_str = substr($catids_str$pos); 
    24.             $sql .= " AND catid IN ($catids_str)"
    25.         } else { 
    26.             $sql .= " AND catid='$catid'"
    27.         } 
    28.     } 
    29.       
    30.     $hits = array(); 
    31.     $result = $this->hits_db->select($sql'*'$data['limit'], $order); 
    32.     foreach ($result as $r) { 
    33.         $pos = strpos($r['hitsid'],'-',2) + 1; 
    34.         $ids_array[] = $id = substr($r['hitsid'],$pos); 
    35.         $hits[$id] = $r
    36.     } 
    37.     $ids = implode(','$ids_array); 
    38.     if($ids) { 
    39.         $sql = "status=99 AND id IN ($ids)"
    40.     } else { 
    41.         $sql = ''
    42.     } 
    43.     $this->db->table_name = $this->tablename; 
    44.     $result = $this->db->select($sql'*'$data['limit'],'','','id'); 
    45.     foreach ($ids_array as $id) { 
    46.         if($result[$id]['title']!='') { 
    47.             $array[$id] = $result[$id]; 
    48.             $array[$id] = array_merge($array[$id], $hits[$id]); 
    49.         } 
    50.     } 
    51.     return $array

    修改代碼后,無論設(shè)置欄目id為0或空,都能調(diào)取全站文章排行。

    調(diào)用方法1:

    {pc:content  action="hits" catid="0" num="10" order="views DESC" cache="3600"}

    調(diào)用方法2:

    {pc:content  action="hits" num="10" order="views DESC" cache="3600"}

    作者:Esion  來源:http://www.cnblogs.com/esion  轉(zhuǎn)載請注明出處

     


    本頁內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶參考了本站不擁有所有權(quán),如您認為本網(wǎng)頁中由涉嫌抄襲的內(nèi)容,請及時與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會在5工作日內(nèi)聯(lián)系您,一經(jīng)查實,本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://www.juherenli.com/28191.html
    相關(guān)
    最新網(wǎng)站建設(shè)案例
     八年  行業(yè)經(jīng)驗

    多一份參考,總有益處

    聯(lián)系深圳網(wǎng)站公司塔燈網(wǎng)絡(luò),免費獲得網(wǎng)站建設(shè)方案及報價

    咨詢相關(guān)問題或預(yù)約面談,可以通過以下方式與我們聯(lián)系

    業(yè)務(wù)熱線:余經(jīng)理:13699882642

    Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

    亚洲精品乱码久久久久久蜜桃不卡| 在线电影国产精品| 国产精品宅男在线观看| 久久www免费人成精品香蕉| 91精品无码久久久久久五月天| 亚洲精品天堂成人片?V在线播放| 久久精品国产久精国产一老狼| 精品人妻少妇一区二区三区在线| 久久久这里有精品| 久久精品视频网站| 亚洲性日韩精品国产一区二区| 好吊妞视频这里只有精品| 国内精品久久久久国产盗摄 | 久久精品国产亚洲AV电影 | 国产成人精品午夜福麻豆| 91精品成人福利在线播放| 国产精品久久久尹人香蕉| 精品无码一区二区三区爱欲| 久久精品国产精品亚洲人人| 国产精品亚洲小说专区| 无码人妻精品一区二区三区99性| 久久国产视频精品| 香蕉在线精品视频在线观看6| 无码国内精品人妻少妇| 少妇人妻偷人精品视蜜桃| 精品无码av一区二区三区| 精品国产福利久久久| 亚洲国产精品日韩专区AV| 精品国产夜色在线| 国产精品香蕉在线| 久久久无码人妻精品无码| 精品国产污污免费网站| av无码精品一区二区三区四区| 国产精品无码AV不卡| 亚洲精品人成网在线播放影院| 精品无码一区二区三区爱欲| 久久久久琪琪去精品色无码| 国产乱码精品一区二区三区中文 | 日韩免费精品视频| 午夜精品在线观看| 国产午夜福利精品一区二区三区|