Phpcms V9 调用全站文章排行的解决方法

phpcms教程 强烈建议 2024-03-02 10:45 266 0

  /**

  * 排行榜标签

  * @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;

  }

本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!