phpcms v9 默认只调用当前栏目的文章排行,却没有调用全站文章排行的代码,现在就将phpcms v9 调用全站文章排行的方法代码公布出来,本资源收集于互联网,并测试可行(梦想oO天堂)。
调用代码:

   
   
   
   
  1. {pc:content action="sitehits" siteid="1" num="10" order="views DESC" cache="3600"}  
  2. {loop $data $r}  
  3. "{$r[url]}" target="_blank">{$r[title]}  
  4. {/loop}  
  5. {/pc} 

打开phpcms\modules\content\classes\content_tag.class.php

在里面添加以下代码:

   
   
   
   
  1. /**  
  2.     * sitehits站点点击排行  
  3.     * @param $data  
  4.     */  
  5.     function sitehits($data){  
  6.         if(emptyempty($data['siteid'])) return false;  
  7.         $siteid = intval($data['siteid']);  
  8.         $this->hits_db = pc_base::load_model('hits_model');  
  9.         $category_content = getcache('category_content','commons');  
  10.         $catid = '';  
  11.         //获取站点下所有栏目ID  
  12.         foreach($category_content as $key=>$val){  
  13.             if($val==$siteid){  
  14.             $catid .= $comma.$key;  
  15.             $comma=',';  
  16.             }  
  17.         }  
  18.     //获取点击排行  
  19.     $r = $this->hits_db->select('catid in('.$catid.')','hitsid',$data['limit'],$data['order']);  
  20.     $return = array();  
  21.     $sitemodel_model_db = pc_base::load_model('sitemodel_model');  
  22.     $this->db_config = pc_base::load_config('database');  
  23.     $tablepre = $this->db_config['default']['tablepre'];  
  24.     foreach($r as $key){  
  25.         preg_match_all('/-(\d+)-/',$key['hitsid'],$modelid);  
  26.         $id = substr($key['hitsid'],(strpos($key['hitsid'],'-',2)+1));  
  27.         $tablename = $sitemodel_model_db->get_one(array('modelid'=>$modelid[1][0]),'tablename');  
  28.         $this->db->table_name = $tablepre.$tablename['tablename'];  
  29.         $return[] = array_merge($return,$this->db->get_one(array('id'=>$id)));  
  30.         }  
  31.         return $return;  
  32.     }