phpcms 调用全站最新发布数据

phpcms模板标签没有调用全站最新发布的数据

所以参考phpcms本身自带的lists方法写了一个Countlists调用全站数据

/** 
	* 全站最热 
	* @param $data 
	*/ 
	
	public function CountLists($data) {
		$this->db->table_name = 'v9_news';
		$catid = intval($data['catid']); 
		
		if(isset($data['where'])){ 
			$sql = $data['where']; 
		}else{ 
			$thumb = intval($data['thumb']) ? " AND thumb != ''" : ''; 
			if(!empty($catid)) { 
				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 = "status=99 AND catid IN ($catids_str)".$thumb; 
				} else { 
					$sql = "status=99 AND catid='$catid'".$thumb; 
				} 
			} 
			else { 
				$sql = "status=99".$thumb; 
			} 
		} 
		$order = $data['order']; 
		$return = $this->db->select($sql, '*', $data['limit'], $order, '', 'id'); 
		//调用副表的数据 
		if (isset($data['moreinfo']) && intval($data['moreinfo']) == 1) { 
			$ids = array(); 
			foreach ($return as $v) { 
				if (isset($v['id']) && !empty($v['id'])) { 
					$ids[] = $v['id']; 
				} else { 
					continue; 
				} 
			} 
			if (!empty($ids)) { 
				$this->db->table_name = $this->db->table_name.'_data'; 
				$ids = implode('\',\'', $ids); 
				$r = $this->db->select("`id` IN ('$ids')", '*', '', '', '', 'id'); 
				if (!empty($r)) { 
					foreach ($r as $k=>$v) { 
						if (isset($return[$k])) $return[$k] = array_merge($v, $return[$k]); 
					} 
				} 
			} 
		} 
		return $return; 
	} 

因为指定了
$this->db->table_name = 'v9_news';

所以只有默认的文章模型可以用,其他模型暂时不行

调用方式为

{pc:content action="CountLists" num="5" order="id DESC"} 

  解决..

转载于:https://www.cnblogs.com/ningsir/p/5333264.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值