phpcms v9内容模块实现多栏目数据调用方法
phpcms v9内容模块实现多栏目数据调用方法
打开\phpcms\modules\content\classes\content_tag.class.php文件,找到第61-75行
$catid = intval($data['catid']);if(!$this->set_modelid($catid)) return false;if(isset($data['where'])) {$sql = $data['where'];} else {$thumb = intval($data['thumb']) ? " AND thumb != ''" : '';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;}}
修改为:
$arr_catid = explode(',',$data['catid']);if(isset($data['where'])) {$sql = $data['where'];} else {$thumb = intval($data['thumb']) ? " AND thumb != ''" : '';if(count($arr_catid) > 1){$val_arr = array();foreach($arr_catid as $key => $val){$str_catid = intval($val);if(!$this->set_modelid($str_catid)) return false;if($this->category[$val]['child']) {$catids_str = $this->category[$val]['arrchildid'];$pos = strpos($catids_str,',')+1;$val_arr[] = substr($catids_str, $pos);} else {$val_arr[] = $val;}}$imcatid = implode (",",$val_arr);$sql = "status=99 AND catid IN ($imcatid)".$thumb;}else{$catid = $arr_catid[0];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;}}}
使用范例:
{pc:content action="lists" catid="2,3,4" order="id DESC" num="4"}<ul>{loop $data $key $val}<li> <a href="{$val['url']}">{$val['title']}</a></li>{/loop}</ul>{/pc}
这样就实现了phpcms v9内容模块实现多栏目数据调用。