PHPCMSV9分类信息catid和where不能共存的解决方法

最后修订:
2019-02-15 23:22:50
PHPCMS 建站教程

摘要:在用PHPCMSV9做分类信息的时候,发现catid和where不能同时存在,有where参数的时候,catid就不起作用了,导致在任何分类下全部目录的信息都显示了,现通过修改代码的形式实现共存

在做分类信息的时候,发现catid和where不能同时存在,有where参数的时候,catid就不起作用了,导致在任何分类下全部目录的信息都显示了。
现在分享一个解决方法

打开标签代码文件:content_tag.class.php,复制以下代码放到public function lists($data)函数下。
        /*分类信息自定义*/
                public function listsfenlei($data) {
 
                $catid = intval($data['catid']);
 
                if(!$this->set_modelid($catid)) return false;
 
                if(isset($data['where'])) {
                        
$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 = $data['where']."AND catid IN ($catids_str)".$thumb;
 
                        } else {
 
                                $sql = $data['where']."AND catid='$catid'".$thumb;
 
                        }
 
 
                } 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;
 
                        }
 
                        
                }
 
                $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;
 
        }
/*分类信息自定义 END*/

本站所有内容来自网络收集整理和站长原创,未经作者授权,不得用作他用。

如对本站内容有所疑问,请点击右下角的“反馈建议”将您的问题提交给我。