最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Phpcms V9 調(diào)用全站文章排行的解決方法

  發(fā)布時(shí)間:2012-07-30 21:36:48   作者:佚名   我要評(píng)論
今天忙于修改網(wǎng)站界面,想在首頁(yè)添加瀏覽排行功能,卻發(fā)現(xiàn)Phpcms竟然不支持調(diào)用全站文章排行。下午仔細(xì)研究了Phpcms源碼,終于找到解決辦法
默認(rèn)情況下,Phpcms只支持調(diào)用當(dāng)前文章排行,代碼如下:
{pc:content action="hits" catid="$catid" num="10" order="views DESC" cache="3600"}
其中$catid為待調(diào)用欄目的id,如果想實(shí)現(xiàn)全站調(diào)用,需要修改phpcms\modules\content\classes\content_tag.class.php文件,找到以下函數(shù):

復(fù)制代碼
代碼如下:

/**
* 排行榜標(biāo)簽
* @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;
}

  修改代碼(見(jiàn)注釋):

復(fù)制代碼
代碼如下:

/**
* 排行榜標(biāo)簽
* @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;
}

修改代碼后,無(wú)論設(shè)置欄目id為0或空,都能調(diào)取全站文章排行。
調(diào)用方法1:
{pc:content action="hits" catid="0" num="10" order="views DESC" cache="3600"}
調(diào)用方法2:
{pc:content action="hits" num="10" order="views DESC" cache="3600"}

相關(guān)文章

最新評(píng)論

永德县| 宝清县| 汶川县| 湘乡市| 都昌县| 二手房| 绥阳县| 东山县| 门源| 富平县| 鱼台县| 大同县| 石屏县| 闵行区| 都匀市| 唐海县| 崇仁县| 朝阳区| 汝南县| 清河县| 明光市| 湖南省| 台北县| 怀来县| 岱山县| 鄢陵县| 成都市| 麻栗坡县| 通化县| 抚州市| 西昌市| 互助| 怀来县| 光泽县| 济南市| 霍山县| 东莞市| 比如县| 宁明县| 思茅市| 濮阳县|