123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- <?php
- namespace Api\Controller;
- use Think\Controller;
- class CatalogController extends BaseController {
- //获取目录列表
- public function catList(){
- $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")->where(" item_id = '$item_id' ")->order(" 's_number', addtime asc ")->select();
- }
- 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")->where(" item_id = '$item_id' and level =2 ")->order(" 's_number', addtime asc ")->select();
- }
- 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")->where(" item_id = '$item_id' and level = 2 ")->order(" s_number, addtime asc ")->select();
- if (!empty($ret)) {
- foreach ($ret as $key => &$value) {
- $value['addtime'] = date("Y-m-d H:i:s",$value['addtime']) ;
- $ret2 = D("Catalog")->where(" parent_cat_id = '$value[cat_id]' ")->order(" s_number, addtime asc ")->select();
- if (empty($ret2)) {
- $value['sub'] = array() ;
- }else{
- foreach ($ret2 as $key2 => $value2) {
- $ret2[$key2]['addtime'] = date("Y-m-d H:i:s",$value2['addtime']) ;
- }
- $value['sub'] = $ret2 ;
- }
- }
- }
- }
- if ($ret) {
- $this->sendResult($ret);
- }else{
- $this->sendResult(array());
- }
- }
- //获取二级目录的子目录列表,即三级目录列表(如果存在的话)
- public function childCatList(){
- $cat_id = I("cat_id/d");
- if ($cat_id > 0 ) {
- $ret = D("Catalog")->where(" parent_cat_id = '$cat_id' ")->order(" 's_number', addtime asc ")->select();
- }
- 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") : 99 ;
- $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 ;
- $data['s_number'] = $s_number ;
- $data['item_id'] = $item_id ;
- $data['parent_cat_id'] = $parent_cat_id ;
- if ($parent_cat_id > 0 ) {
- $data['level'] = 3;
- }else{
- $data['level'] = 2;
- }
- if ($cat_id > 0 ) {
-
- $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 (D("Page")->where(" cat_id = '$cat_id' ")->find() || D("Catalog")->where(" parent_cat_id = '$cat_id' ")->find()) {
- $return['error_code'] = -1 ;
- $return['error_message'] = L('no_delete_empty_catalog') ;
- $this->sendResult($return);
- return;
- }
- if ($cat_id > 0 ) {
-
- $ret = D("Catalog")->where(" cat_id = '$cat_id' ")->delete();
- }
- 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->message(L('no_permissions'));
- return;
- }
- $Catalog = D("Catalog")->where(" cat_id = '$default_cat_id' ")->find();
- if ($Catalog['parent_cat_id']) {
- $default_cat_id2 = $Catalog['parent_cat_id'];
- $default_cat_id3 = $default_cat_id;
- }else{
- $default_cat_id2 = $default_cat_id;
- }
- $this->sendResult(array("default_cat_id2"=>$default_cat_id2 , "default_cat_id3"=>$default_cat_id3));
- }
- }
|