phpcms V9如何呼叫全站文章排行

2021-09-20 22:58:02 字數 1636 閱讀 4642

想在首頁新增瀏覽排行功能,卻發現phpcms竟然不支援呼叫全站文章排行。仔細研究了phpcms原始碼,終於找到解決辦法。

預設情況下,phpcms只支援呼叫當前文章排行,**如下:

其中$catid為待呼叫欄目的id,如果想實現全站呼叫,需要修改phpcms\modules\content\classes\content_tag.class.php檔案,找到以下函式:

/** 

* 排行榜標籤 

* @param $data 

*/ public function hits($data)  

if($this->category[$catid]['child']) else  

$hits = array(); 

$result = $this->hits_db->select($sql, '*', $data['limit'], $order); 

foreach ($result as $r)  

$ids = implode(',', $ids_array); 

if($ids) else  

$this->db->table_name = $this->tablename; 

$result = $this->db->select($sql, '*', $data['limit'],'','','id'); 

foreach ($ids_array as $id)  

} return $array; 

} 修改**(見注釋):

/** 

* 排行榜標籤 

* @param $data 

*/ public function hits($data)

$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']))  

if(!emptyempty($catid) && $catid>0) else  

} $hits = array(); 

$result = $this->hits_db->select($sql, '*', $data['limit'], $order); 

foreach ($result as $r)  

$ids = implode(',', $ids_array); 

if($ids) else  

$this->db->table_name = $this->tablename; 

$result = $this->db->select($sql, '*', $data['limit'],'','','id'); 

foreach ($ids_array as $id)  

} return $array; 

} 修改**後,無論設定欄目id為0或空,都能調取全站文章排行。

呼叫方法1:

呼叫方法2:

PHPCMS V9呼叫全站資料

跨模型 跨欄目呼叫最新資料 param modelid 模型id 可以有多個用,隔開 param limit 要呼叫的數量 param siteid 站點id 預設為1 return array 返回乙個陣列 function news modelid 1,2 limit 20 siteid 1 f...

phpcmsv9全站搜尋,不限模型

phpcmsv9全站搜尋,不限模型,今天又漲知識了。大家都知道,phpcms搜尋時按照模型來搜尋的,用了這個方法後,就可以全站搜尋 簡單修改一下v9預設的搜尋功能,可以不按模型搜尋全站內容 下面是被修改後的search模組中的index.php檔案 defined in phpcms or exit...

Phpcms V9 呼叫全站最新文章的方法

ph預設不支援呼叫全站最新文章,需要修改檔案 phpcms modules content classes content tag.class.php,找到以下函式 複製 如下 列表頁標籤 param data public function lists data else else order d...