phpcms 调取 某个 模型下所有内容列表
action = "mlists"
modelid 模型id,必须,1是文章
siteid 必须
caitid 可以是 2,3,4形式的字符串,也可以是单个catid值
如果要views,comments的数据,moreinfo必须设置成1,
只有评论数,没有点击量
{pc:content action="mlists" modelid="1" siteid="$siteid" catid="2,3,4,5" limit="30" moreinfo="1" comments="1"}
只有点击量,没有评论数
{pc:content action="mlists" modelid="1" siteid="$siteid" catid="3" limit="30" moreinfo="1" views="1"}
没有浏览量和评论数
{pc:content action="mlists" modelid="1" siteid="$siteid" catid="$catids" limit="30" views="1"}
浏览数和评论数都有
{pc:content action="mlists" modelid="1" siteid="$siteid" catid="$catids" limit="30" moreinfo="1" views="1" comments="1"} {loop $data $r} {/loop} {/pc}
php中加入: phpcms/modules/content/classes/content_tag.class.php
public function mlists($data){ if(!isset($data['modelid']) || intval($data['modelid']) <=0 ) return false; $catid = "1,". $data['catid']; $siteid = intval($data['siteid']); static $CATS; if ($CATS[$siteid]) { $this->category = $CATS[$siteid]; } else { $CATS[$siteid] = $this->category = getcache('category_content_'.$siteid,'commons'); } $this->modelid = $data['modelid']; $this->db->set_model($this->modelid); $this->tablename = $this->db->table_name; if(isset($data['where'])) { $sql = $data['where']; } else { $thumb = intval($data['thumb']) ? " AND thumb != ''" : ''; if($cat_array=explode(',',$catid) ){ $catids_str = $catid; foreach($cat_array as $k => $v){ if($this->category[$v]['child']) { $catids_str .= ','.$this->category[$v]['arrchildid']; } } $sql = "status=99 AND catid IN ($catids_str)".$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']; $hitsids[$v['id']] = 'c-'.$this->modelid.'-'.$v['id']; $commentids[$v['id']] = 'content_'.$v['catid'].'-'.$v['id'].'-'.$this->modelid; } 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]); } } //查询点击 if (isset($data['views']) && intval($data['views']) == 1) { $this->db->table_name = "xmlc_hits"; $hitsids_str = implode('\',\'', $hitsids); $r = $this->db->select("`hitsid` IN ('$hitsids_str')", 'views,hitsid', '', '', '', 'hitsid'); foreach ($r as $k=>$v) { $id = array_search($k,$hitsids); if (isset($return[$id])) $return[$id] = array_merge($v, $return[$id]); } } //查询评论数 if (isset($data['comments']) && intval($data['comments']) == 1) { $this->comment_db = pc_base::load_model('comment_model'); $commentids_str = implode('\',\'', $commentids); $r = $this->comment_db->select("`commentid` IN ('$commentids_str')", 'count(commentid) as comment_num,commentid', '', '', 'commentid', 'commentid'); if (empty($r)) { foreach ($return as $k=>$v) { $return[$k]['comment_num']=0; } } else { foreach ($r as $k=>$v) { $id = array_search($k,$commentids); if (isset($return[$id])) $return[$id]['comment_num'] = $v['comment_num']; } } } } } return $return; }
返回数据单个是:下面是var_dump出来的结果
array(31) { ["views"]=> string(1) "0" ["hitsid"]=> string(5) "c-1-1" ["id"]=> string(1) "1" ["content"]=> string(1010) " " ["readpoint"]=> string(1) "0" ["groupids_view"]=> string(0) "" ["paginationtype"]=> string(1) "2" ["maxcharperpage"]=> string(1) "0" ["template"]=> string(0) "" ["paytype"]=> string(1) "0" ["relation"]=> string(0) "" ["voteid"]=> string(1) "0" ["allow_comment"]=> string(1) "1" ["copyfrom"]=> string(9) "人民网" ["catid"]=> string(2) "15" ["typeid"]=> string(1) "0" ["title"]=> string(60) "温州苍南被曝暴力强拆:抗议村民当场被拉走" ["style"]=> string(0) "" ["thumb"]=> string(0) "" ["keywords"]=>string(20) "" ["description"]=>string(196) "" ["posids"]=> string(1) "0" ["url"]=> string(78) "http://127.0.0.1/index.php?m=content&c=index&a=show&catid=9&id=1" ["listorder"]=>string(1) "0" ["status"]=>string(2) "99" ["sysadd"]=>string(1) "1" ["islink"]=> string(1) "0" ["username"]=>string(8) "wangchao" ["inputtime"]=>string(10) "1369276174" ["updatetime"]=>string(10) "1369276174" ["comment_num"]=> int(0) }