Phpcms V9 调用全站文章排行的解决方法
	默认情况下,Phpcms只支持调用当前文章排行,代码如下: 
	{pc:content action="hits" catid="$catid" num="10" order="views DESC" cache="3600"} 
	其中$catid为待调用栏目的id,如果想实现全站调用,需要修改phpcms\modules\content\classes\content_tag.class.php文件,找到以下函数: 
复制代码
代码如下:
	
	/** 
	* 排行榜标签 
	* @param $data 
	*/ 
	public function hits($data) { 
	$catid = intval($data['catid']); 
	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($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; 
	} 
	
	  修改代码(见注释): 
复制代码
代码如下:
	
	/** 
	* 排行榜标签 
	* @param $data 
	*/ 
	public function hits($data) { 
	$catid = intval($data['catid']); 
	$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(!empty($catid) && $catid>0) { //添加判断:id是否为空 
	if(!$this->set_modelid($catid)) return false; 
	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; 
	} 
	
	修改代码后,无论设置栏目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"}
