admin
管理员
管理员
  • UID1
  • 粉丝2
  • 关注2
  • 发帖数339
  • 社区居民
  • 忠实会员
  • 原创写手
阅读:4149回复:0

phpcms v9 调用方法全站点击排行

楼主#
更多 发布于:2013-09-01 11:25
分享到:
PHPCMS V9  只提供了调用单个频道点击排行的方法,只要对其方法做相应的改变就能做到全站排行。找到phpcms/modules/content/classes/content_tag.class.php,可以修改hits方法。
在相应位置增加$catid!=0的判断,前台调用:
{pc:content action="hits" catid="0" num="10" order="views  DESC"}     public function hits($data) {  
         $catid = intval($data['catid']);  
         if($catid != 0){  
             if(!$this->set_modelid($catid)) return false;
          }  
 
        $this->hits_db = pc_base::load_model('hits_model');  
        $sql = $desc = $ids = '';  
         $array = $ids_array = array();  
         $order = $data['order'];  
         $hitsid = 'c-'.$this->modelid.'-%';  
         $sql = "hitsid LIKE '$hitsid'";  
         if(isset($data['day'])) {  
             $updatetime = SYS_TIME-intval($data['day'])*86400;  
             $sql .= " AND updatetime>'$updatetime'";  
         }  
         if($catid != 0){  
             if($this->category[$catid]['child']) {  
                 $catids_str = $this->category[$catid]['arrchildid'];  
                 $pos = strpos($catids_str,',')+1;  
                 $catids_str = substr($catids_str, $pos);  
                 $sql .= " AND catid IN ($catids_str)";  
             } else {  
                 $sql .= " AND catid='$catid'";  
           }  
         }  
         $hits = array();  
         $result = $this->hits_db->select($sql, '*', $data['limit'], $order);  
         foreach ($result as $r) {  
             $pos = strpos($r['hitsid'],'-',2) + 1;  
             $ids_array[] = $id = substr($r['hitsid'],$pos);  
             $hits[$id] = $r;  
         }  
         $ids = implode(',', $ids_array);  
         if($ids) {  
             $sql = "status=99 AND id IN ($ids)";  
         } else {  
             $sql = '';  
         }  
         $this->db->table_name = $this->tablename;  
         $result = $this->db->select($sql, '*', $data['limit'],'','','id');  
         foreach ($ids_array as $id) {  
             if($result[$id]['title']!='') {  
                 $array[$id] = $result[$id];  
                 $array[$id] = array_merge($array[$id], $hits[$id]);  
             }  
         }  
         return $array;  
     }
游客

返回顶部