麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > CMS > PhpCMS > 正文

Phpcms v9調用全站文章排序榜實現方法

2024-09-10 07:16:19
字體:
來源:轉載
供稿:網友

Phpcms只支持調用當前文章排行,代碼也是相當的簡單,但是我想調用全站文章的排行這一點它做得不如 dedecms好.

v9調用當前欄目排行代碼如下:

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

其中$catid為待調用欄目的id,如果想實現全站調用,需要修改phpcmsmodulescontentclassescontent_tag.class.php文件,找到以下函數:

  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 {  //開源軟件:Vevb.com 
  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;  

修改代碼后,無論設置欄目id為0或空,都能調取全站文章排行.

調用方法1:代碼如下:

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

調用方法2:代碼如下:

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 一本色道久久99精品综合蜜臀 | 污片在线观看视频 | 91九色视频在线观看 | 欧美毛片 | 国产女同疯狂激烈互摸 | 精品一区二区久久久 | 外国一级黄色片 | 中文字幕在线观看91 | 欧美视频在线一区二区三区 | 国内免费视频成人精品 | 亚洲va久久久噜噜噜久久男同 | 91在线视频福利 | 日本最新免费二区三区 | 狠狠干最新网址 | 日本最新免费二区三区 | 国产99免费 | av电影在线免费观看 | 巨根插入| 中国成人在线视频 | 国产又白又嫩又紧又爽18p | 免费在线成人网 | 成人在线视频免费播放 | 久久久久北条麻妃免费看 | 成人在线视频免费 | 美女网站色免费 | 蜜桃精品视频 | 国产成人小视频在线观看 | 国产成人综合在线观看 | 99欧美精品| 久久久久久久久久网站 | 久久久一区二区三区精品 | 在线亚洲免费视频 | 亚洲国产精品久久久 | 欧美一级aa免费毛片 | 黄色片网站免费看 | 免费专区 - 91爱爱 | 有色视频在线观看 | 成人福利视频在 | 国产在线播放一区二区 | 看全色黄大色黄大片女图片 | 亚洲一区二区三区日本久久九 |