gistfile1.txt where(array('catid'=$catid))-find();$data=array();$data[$catid]=$arr;return $data ; }//endpublic function index(){$cat_arr = M('category')-select();foreach($cat_arr as $key = $value){$cat_arrs[$value['catid']] = $value;}sessio
where(array('catid'=>$catid))->find(); $data=array(); $data[$catid]=$arr; return $data ; } //end public function index(){ $cat_arr = M('category')->select(); foreach($cat_arr as $key => $value){ $cat_arrs[$value['catid']] = $value; } session('CATEGORY',$cat_arrs); $str = ''; get_tree(0,$cat_arr,$str); $this->assign('list',$str); $this->display(); } public function add_category(){ $cat_arr = M('category')->select(); $select_str = ''; get_select_tree(0,$cat_arr,$select_str); $this->assign('list',$select_str); $this->display(); } public function do_add_category(){ $catid = I('post.catid'); $category = I('post.'); if(empty($catid)){ $catid = M('category')->add($category); if($category['parentid']){ //更新它的节点的字符串,做法是找到父节点的那条数据并且把父节点的父节点加入到当前节点的父节点字符串中 //重新定义数组索引 $this->category=$this->getArray($category['parentid']); $category['arrparentid'] = $this->category[$category['parentid']]['arrparentid'].','.$category['parentid']; $parentids = explode(",",$category['arrparentid']); foreach($parentids as $parentid){ if($parentid){ $this->category=$this->getArray($parentid); $arrchildid=$this->category[$parentid]['arrchildid'].",".$catid; M('category')->where(array('catid'=>$parentid))->save(array('arrchildid'=>$arrchildid)); } //更新父节点对应栏目的子节点字符串 } //如果没有父节点 }else{ $category['arrparentid']='0'; } //更新当前节点,arrchildid 和arrparentid $arrparentid = $category['arrparentid']; M('category')->where(array('catid'=>$catid))->save(array('arrchildid'=>$catid,'arrparentid'=>$arrparentid)); $this->success('新增成功', U('index/renovation')); }else{ } } public function do_edit_category(){ $catid = 10; $data = M('category')->where(array('catid'=>$catid))->Field('parentid,arrchildid,arrparentid')->find(); M('category')->where(['catid'=>array('in',$data['arrchildid'])])->delete(); if($data['parentid'] != 0){ $Model = new \Think\Model(); // 实例化一个model对象 没有对应任何数据表 $childids = explode(",",$data['arrchildid']); foreach($childids as $key => $value){ $info = $Model->execute("update __CATEGORY__ set arrchildid = replace(arrchildid,',".$value."','') WHERE arrchildid REGEXP ',".$value."$' and catid in (".$data['arrparentid'].");"); $info1 = $Model->execute("update __CATEGORY__ set arrchildid = replace(arrchildid,',".$value.",',',') WHERE catid in (".$data['arrparentid'].");"); } } } public function get_test() { $cats = M('category')->select(); $cat_arr = array(); foreach($cats as $key=>$value){ $cat_arr[$value['catid']] = $value; } var_dump($this->get_arrchildid(15,$cat_arr)); var_dump($this->get_arrparentid(16,$cat_arr)); } /** * * 获取子栏目ID列表 * @param $catid 栏目ID */ public function get_arrchildid($catid,$cat_arr) { $arrchildid = $catid; if(is_array($cat_arr)) { foreach($cat_arr as $id => $cat) { if($cat['parentid'] && $id != $catid && $cat['parentid']==$catid) { $arrchildid .= ','.$this->get_arrchildid($id,$cat_arr); } } } return $arrchildid; } /** * * 获取父栏目ID列表 * @param integer $catid 栏目ID * @param array $arrparentid 父目录ID * @param integer $n 查找的层次 */ public function get_arrparentid($catid,$cat_arr,$arrparentid = '', $n = 1) { if($n > 5 || !is_array($cat_arr) || !isset($cat_arr[$catid])) return false; $parentid = $cat_arr[$catid]['parentid']; $arrparentid = $arrparentid ? $parentid.','.$arrparentid : $parentid; if($parentid) { $arrparentid = $this->get_arrparentid($parentid, $cat_arr ,$arrparentid, ++$n); } else { $cat_arr[$catid]['arrparentid'] = $arrparentid; } $parentid = $cat_arr[$catid]['parentid']; return $arrparentid; } public function edit_category(){ $map['a.uid'] = I('get.uid'); $info = M('users')->alias('a')->join('LEFT JOIN __AUTH_GROUP_ACCESS__ b ON a.uid=b.uid')->where($map)->find(); $list = M('auth_group')->select(); foreach($list as $k => &$v){ $v['users'] = M('auth_group_access')->where(array('group_id'=>$v['id']))->select(); } $this->assign('list',$list); $this->assign('info',$info); $this->display('add_user'); } }