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

首頁 > CMS > PhpCMS > 正文

Phpcms V9 調用全站文章排行的解決方案

2024-09-10 07:18:15
字體:
來源:轉載
供稿:網友
今天忙于修改網站界面,想在首頁添加瀏覽排行功能,卻發現Phpcms竟然不支持調用全站文章排行。下午仔細研究了Phpcms源碼,終于找到解決辦法。

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

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

其中$catid為待調用欄目的id,如果想實現全站調用,需要修改phpcms/modules/content/classes/content_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 { 
  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"}

作者:Esion  來源:http://www.companysz.com/esion  轉載請注明出處

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 182tv成人福利视频免费看 | 国产欧美日韩视频在线观看 | 国产精品久久久久久久久久iiiii | 欧美人人干 | 亚洲成人在线免费 | 日韩精品网站在线观看 | 色欲香天天天综合网站 | 免费国产成人高清在线看软件 | 中文字幕网站在线 | 亚洲视频高清 | 免费国产自久久久久三四区久久 | 黄色av免费电影 | 国产91小视频在线观看 | 欧美国产日韩在线 | 黄色网址免费进入 | 娇妻被各种姿势c到高潮小说 | 91久久国产综合久久91精品网站 | 国产一区二区三区在线免费观看 | 亚洲第一综合 | 国内精品久久久久久2021浪潮 | 亚洲啊v在线观看 | 爽妇网国产精品 | 午夜偷拍视频 | 福利在线小视频 | 欧美一级一区二区三区 | 制服丝袜成人动漫 | 手机av免费在线 | a一级黄| 狠狠干天天操 | 欧美a区| 欧美视频在线一区二区三区 | 日韩精品中文字幕一区 | 欧美日韩亚洲在线 | 中文字幕在线观看精品 | 中文在线免费观看 | 国产精品亚洲欧美一级在线 | 狠狠操电影 | 成人免费乱码大片a毛片视频网站 | 国产午夜精品久久久久久免费视 | 久久国产成人精品国产成人亚洲 | 成人在线免费观看视频 |