PHPCMS开发

当前位置/ 首页/ V9教程/PHPCMS开发/ 正文

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内容模块实现多栏目数据调用。