checkLogin(); $item_id = I("item_id/d"); if (!$this->checkItemVisit($login_user['uid'] , $item_id)) { $this->sendError(10103); return ; } if ($item_id > 0 ) { $ret = D("Catalog")->getList($item_id); $ret = D("Catalog")->filteMemberCat($login_user['uid'] , $ret); } if ($ret) { $this->sendResult($ret); }else{ $this->sendResult(array()); } } //获取目录列表 public function catListGroup(){ $login_user = $this->checkLogin(); $item_id = I("item_id/d"); if (!$this->checkItemVisit($login_user['uid'] , $item_id)) { $this->sendError(10103); return ; } if ($item_id > 0 ) { $ret = D("Catalog")->getList($item_id,true); $ret = D("Catalog")->filteMemberCat($login_user['uid'] , $ret); } if ($ret) { $this->sendResult($ret); }else{ $this->sendResult(array()); } } //获取二级目录列表 public function secondCatList(){ $login_user = $this->checkLogin(); $item_id = I("item_id/d"); if (!$this->checkItemVisit($login_user['uid'] , $item_id)) { $this->sendError(10103); return ; } if ($item_id > 0 ) { $ret = D("Catalog")->getListByLevel($item_id , 2); } if ($ret) { $this->sendResult($ret); }else{ $this->sendResult(array()); } } //获取二级目录的子目录列表,即三级目录列表(如果存在的话) public function childCatList(){ $login_user = $this->checkLogin(); $cat_id = I("cat_id/d"); if ($cat_id > 0 ) { $row = D("Catalog")->where(" cat_id = '$cat_id' ")->find() ; $item_id = $row['item_id'] ; if (!$this->checkItemVisit($login_user['uid'] , $item_id)) { $this->sendError(10103); return ; } $ret = D("Catalog")->getChlid($item_id , $cat_id); } if ($ret) { $this->sendResult($ret); }else{ $this->sendResult(array()); } } //保存目录 public function save(){ $cat_name = I("cat_name"); $s_number = I("s_number/d") ? I("s_number/d") : '' ; $cat_id = I("cat_id/d")? I("cat_id/d") : 0; $parent_cat_id = I("parent_cat_id/d")? I("parent_cat_id/d") : 0; $item_id = I("item_id/d"); $login_user = $this->checkLogin(); if (!$this->checkItemPermn($login_user['uid'] , $item_id)) { $this->sendError(10103); return; } //禁止空目录的生成 if (!$cat_name) { return; } if ($parent_cat_id && $parent_cat_id == $cat_id) { $this->sendError(10101,"上级目录不能选择自身"); return; } $data['cat_name'] = $cat_name ; if($s_number)$data['s_number'] = $s_number ; $data['item_id'] = $item_id ; $data['parent_cat_id'] = $parent_cat_id ; if ($parent_cat_id > 0 ) { $row = D("Catalog")->where(" cat_id = '$parent_cat_id' ")->find() ; $data['level'] = $row['level'] +1 ; }else{ $data['level'] = 2; } if ($cat_id > 0 ) { $cat = D("Catalog")->where(" cat_id = '$cat_id' ")->find(); $item_id = $cat['item_id']; if (!$this->checkItemPermn($login_user['uid'] , $item_id)) { $this->sendError(10103); return; } //如果一个目录已经是别的目录的父目录,那么它将无法再转为level4目录 //if (D("Catalog")->where(" parent_cat_id = '$cat_id' ")->find() && $data['level'] == 4 ) { //$this->sendError(10101,"该目录含有子目录,不允许转为底层目录。"); //return; //} $ret = D("Catalog")->where(" cat_id = '$cat_id' ")->save($data); $return = D("Catalog")->where(" cat_id = '$cat_id' ")->find(); }else{ $data['addtime'] = time(); $cat_id = D("Catalog")->add($data); $return = D("Catalog")->where(" cat_id = '$cat_id' ")->find(); } if (!$return) { $return['error_code'] = 10103 ; $return['error_message'] = 'request fail' ; } $this->sendResult($return); } //删除目录 public function delete(){ $cat_id = I("cat_id/d")? I("cat_id/d") : 0; $cat = D("Catalog")->where(" cat_id = '$cat_id' ")->find(); $item_id = $cat['item_id']; $login_user = $this->checkLogin(); if (!$this->checkItemPermn($login_user['uid'] , $item_id)) { $return['error_code'] = -1 ; $return['error_message'] = L('no_permissions'); $this->sendResult($return); return; } if ($cat_id > 0 ) { $ret = D("Catalog")->deleteCat($cat_id); } if ($ret) { $this->sendResult($ret); }else{ $return['error_code'] = -1 ; $return['error_message'] = 'request fail' ; $this->sendResult($return); } } //编辑页面时,自动帮助用户选中目录 //选中的规则是:编辑页面则选中该页面目录,复制页面则选中目标页面目录; // 如果是恢复历史页面则使用历史页面的目录,如果都没有则选中用户上次使用的目录 public function getDefaultCat(){ $login_user = $this->checkLogin(); $page_id = I("page_id/d"); $item_id = I("item_id/d"); $page_history_id = I("page_history_id/d"); $copy_page_id = I("copy_page_id/d"); if ($page_id > 0 ) { if ($page_history_id) { $page = D("PageHistory")->where(" page_history_id = '$page_history_id' ")->find(); }else{ $page = M("Page")->where(" page_id = '$page_id' ")->find(); } $default_cat_id = $page['cat_id']; } //如果是复制接口 elseif ($copy_page_id) { $copy_page = M("Page")->where(" page_id = '$copy_page_id' ")->find(); $page['item_id'] = $copy_page['item_id']; $default_cat_id = $copy_page['cat_id']; }else{ //查找用户上一次设置的目录 $last_page = D("Page")->where(" author_uid ='$login_user[uid]' and item_id = '$item_id' ")->order(" addtime desc ")->limit(1)->find(); $default_cat_id = $last_page['cat_id']; } $item_id = $page['item_id'] ?$page['item_id'] :$item_id; if (!$this->checkItemPermn($login_user['uid'] , $item_id)) { $this->sendError(10101,L('no_permissions')); return; } $this->sendResult(array("default_cat_id"=>$default_cat_id )); } //批量更新 public function batUpdate(){ $cats = I("cats"); $item_id = I("item_id/d"); $login_user = $this->checkLogin(); if (!$this->checkItemPermn($login_user['uid'] , $item_id)) { $this->sendError(10103); return ; } $ret = ''; $data_array = json_decode(htmlspecialchars_decode($cats) , true) ; if ($data_array) { foreach ($data_array as $key => $value) { if ($value['cat_name']) { $ret = D("Catalog")->where(" cat_id = '$value[cat_id]' and item_id = '$item_id' ")->save(array( "cat_name" => $value['cat_name'] , "parent_cat_id" => $value['parent_cat_id'] , "level" => $value['level'] , "s_number" => $value['s_number'] , )); } if ($value['page_id'] > 0) { $ret = D("Page")->where(" page_id = '$value[page_id]' and item_id = '$item_id' ")->save(array( "cat_id" => $value['parent_cat_id'] , "s_number" => $value['s_number'] , )); } } } $this->sendResult(array()); } //获取某个目录下所有页面的标题 public function getPagesBycat(){ $cat_id = I("cat_id/d")? I("cat_id/d") : 0; $item_id = I("item_id/d"); $login_user = $this->checkLogin(); if (!$this->checkItemPermn($login_user['uid'] , $item_id)) { $this->sendError(10103); return ; } $return = D("Page")->where("cat_id = '$cat_id' and item_id = '$item_id' and is_del = 0 ")->field("page_id , page_title,s_number")->order("s_number asc , page_id asc")->select(); $this->sendResult($return); } }