table=D("Info"); $catid=I("catid",0,"int"); $modelid=I("modelid",0,"int"); if($modelid){ $modelid=$modelid; }else{ $modelid=$GLOBALS['cat'][$catid]["modelid"]; } // if($catid){ $this->catid=$catid; $this->cat=$GLOBALS['cat'][$this->catid]; } // $this->modelinfo=$GLOBALS['model'][$modelid]; $this->modelid=$modelid; if(!$this->modelinfo){ $this->error("模型不存在!"); } // $this->modelform=APP_PATH.'Data/modelTemp/'.$this->cat['modelid'].".php"; $view_where[type]="view"; if($this->admin_lang){ $view_where["lang"]=$this->admin_lang; } $this->viewtemp=M("template")->where($view_where)->order("sort asc,template_id desc")->select(); } //列表 public function index(){ //判断是否在用户勾选权限内[超级管理员不做验证] if(!check_user_cat("info_view",$this->catid)){ $this->error("您没有权限查看此栏目!"); } // $where=array(); $where['catid']=array("IN",getSonCat($this->catid)); $where['modelid']=$this->modelid; //审核 $checked=I("get.checked"); if($checked==1){ $where['checked']=1; }elseif($checked==9){ $where['checked']=0; } //分类 $this->catOption=$this->getCat(($this->currentCatid)); $this->catOption="".$this->catOption; //判断是不是单页栏目 if($this->cat["is_page"]){ $this->is_page(); return; } //ID $id=I("get.id"); if($id){ $where['id']=$id; } //关键词 $keywords=I("get.keywords"); if($keywords){ $where['keywords|title|id']=array('LIKE','%'.$keywords.'%'); } //按指定字段搜索 $field=explode(",",trim($this->modelinfo["is_search"],",")); if($field){ foreach($field as $v){ if(I($v)){ $where[$v]=I($v); } } } //查询与分页 $listRows=C("display.admin_shownum");//每页显示多少条 $total=$this->table->relation("cat")->where($where)->count(); $page = new \Think\Page($total, $listRows); $order=$this->cat["reorder"]?$this->cat["reorder"]:"sort asc,is_top desc,is_good desc,newstime desc";//默认排序方式 $data=$this->table->relation("cat")->where($where)->order($order)->limit($page->firstRow,$page->listRows)->select(); $this->assign("listpage", $page->show()); //数据再处理 foreach($data as $key=>$v){ //栏目名称 $data[$key][cat]=M("cat")->find($v[catid]); } $this->assign("data",$data); //判断是否有自定义列表模板 if($this->modelinfo[listtemp]){ $this->display($this->modelinfo[listtemp]); }else{ $this->display(); } } public function add(){ if(!check_user_cat("info_add",I("catid"))){ $this->error("您没有操作权限"); } if(IS_POST){ if (!$this->table->relation(true)->create()){//验证 $this->error($this->table->relation(true)->getError()); } $result=$this->table->data_add(); D("UserLog")->add("add",$this->table->getTableName(),$result[id],$_POST[title]); if(!$result){ $this->error($this->table->getError()); } //刷新静态页 $this->updateViewHtml($result[id]); $this->success($result); }else{ $this->cat=$this->selfModelCat2(); $this->pubid=make_pubid(); $this->display(); } } public function editor(){ if(!check_user_cat("info_editor",I("catid"))){ $this->error("您没有操作权限"); } if(IS_POST){ if (!$this->table->create()){//验证 $this->error($this->table->getError()); } $result=$this->table->data_editor(); D("UserLog")->add("update",$this->table->getTableName(),$result[id],$_POST[title]); if(!$result){ $this->error($this->table->getError()); } //刷新静态页 $this->updateViewHtml($result[id]); $this->success($data); }else{ $id=I("get.id",0,"int"); $r=$this->table->relation(true)->find($id); if(!$r){$this->error("信息不存在");}; //副表数据合并 if($r["cms_".$this->modelinfo[table_name]."_data"]){ $newdata=array_merge($r,$r["cms_".$this->modelinfo[table_name]."_data"]); unset($newdata["cms_".$this->modelinfo[table_name]."_data"]); $r=$newdata; } //防止在某些情况下没有pubid $r["pubid"]=$r["pubid"]?$r["pubid"]:make_pubid(); // $this->cat=$this->selfModelCat2(); // $this->assign("r",$r); $this->display(); } } //删除 public function delete(){ if(!check_user_cat("info_delete",I("catid"))){ $this->error("您没有操作权限"); } $ids=I("ids"); //删除静态页 $this->deleteViewHtml($ids); $result=$this->table->data_delete($ids); if(!$result){ $this->error($this->table->getError()); } D("UserLog")->add("delete",$this->table->getTableName(),$ids); $this->success("删除成功"); } //字段排序 public function sort(){ $id=I("id"); $sort=I("sort"); foreach($id as $key=>$vid){ $data['id']=(int)$vid; $data['sort']=(int)$sort[$key]; $this->table->save($data); } D("UserLog")->add("update",$this->table->getTableName(),$ids); $this->success("排序更改成功"); } //审核 public function checked(){ if(!check_user_cat("info_checked",I("catid"))){ $this->error("您没有操作权限"); } $checked=I("get.checked",0,"intval"); $ids=I("ids"); if(!$ids){$this->error("请勾选信息!");}; foreach($ids as $key=>$vid){ $data['id']=(int)$vid; $data['checked']=(int)$checked; $this->table->save($data); //刷新静态页 if($checked){ $this->updateViewHtml($data['id']); }else{ $this->deleteViewHtml($data['id']); } } D("UserLog")->add("update",$this->table->getTableName(),$ids); $this->success("审核操作成功"); } //置顶 public function set_top(){ $ids=I("ids"); if(!$ids){$this->error("请勾选信息!");}; foreach($ids as $key=>$vid){ $data['id']=(int)$vid; $data['is_top']=I("get.is_top",0,"intval"); $this->table->save($data); } D("UserLog")->add("update",$this->table->getTableName(),$ids); $this->success("置顶操作成功"); } //推荐 public function set_good(){ $ids=I("ids"); if(!$ids){$this->error("请勾选信息!");}; foreach($ids as $key=>$vid){ $data['id']=(int)$vid; $data['is_good']=I("get.is_good",0,"intval"); $this->table->save($data); } D("UserLog")->add("update",$this->table->getTableName(),$ids); $this->success("推荐操作成功"); } //数据导入 public function import(){ if(IS_POST){ $Export=new \Admin\Model\ImportDataModel($_POST); //数据验证 $result=$Export->create(); if(!is_array($result)){ $this->error($Export->getError()); } //创建数据表对象 $Export->creatExcelObj(); //获取表格数据 $Export->getExcelData(); //提取表格第一行做为字段名称 $Export->getFieldName(); //提取图片文件,并保存到服务器 $Export->saveImg(); //修正$this->fieldKey,$this->fieldName //$Export->repairFieldName(); $result=$Export->insertData(); $this->success($result); }else{ $this->cat=$this->selfModelCat(); $this->display(); } } //单页信息 public function is_page(){ if(IS_POST){ if (!$this->table->create()){//验证 $this->error($this->table->getError()); } //保存数据 if(I("post.id")){ $result=$this->table->data_editor(); }else{ $result=$this->table->data_add(); } if(!$result){ $this->error($this->table->getError()); } $this->success($data); }else{ $r=$this->table->relation(true)->where(array("catid"=>$this->catid))->order("id desc")->find(); if(!$r){ $r["pubid"]= make_pubid(); }else{ //副表数据合并 if($r["cms_".$this->modelinfo[table_name]."_data"]){ $newdata=array_merge($r,$r["cms_".$this->modelinfo[table_name]."_data"]); unset($newdata["cms_".$this->modelinfo[table_name]."_data"]); $r=$newdata; } } $this->assign("r",$r); $this->display("is_page"); } } //整站所有相同模型的栏目(用在 信息移动,复制页面里的) private function selfModelCat($pid=0,$str=""){ $where["pid"]=$pid; $where["status"]=1; $cat=M("cat")->field("catid,level,name,modelid,status,sort,pid")->where($where)->order("sort asc,catid desc")->select(); if(count($cat)>0){ foreach($cat as $v){ $nbsp_str=""; for($i=1;$i<$v[level];$i++){ $nbsp_str.="       "; } if($v["modelid"]!=$this->modelid){ $this_selected="disabled"; $disabled_str="(模型不同)"; }else{ $this_selected=""; $disabled_str=""; } $str.=""; $str=$this->selfModelCat($v[catid],$str); } return $str; }else{ return $str; } } //当前栏目下相同模型的栏目(用在 信息移动,复制页面里的) private function selfModelCat2($pid=0,$str=""){ $where["pid"]=$pid; $where["status"]=1; $cat=M("cat")->field("catid,level,name,modelid,status,sort,pid")->where($where)->order("sort asc,catid desc")->select(); if(count($cat)>0){ foreach($cat as $v){ $nbsp_str=""; for($i=1;$i<$v[level];$i++){ $nbsp_str.="       "; } if($v["modelid"]!=$this->modelid){ $this_selected="disabled"; $disabled_str="(模型不同)"; }else{ $this_selected=""; $disabled_str=""; } //默认选中当前栏目 if($v["catid"]==$this->catid){ $this_selected2="selected"; }else{ $this_selected2=""; } $str.=""; $str=$this->selfModelCat2($v[catid],$str); } return $str; }else{ return $str; } } //复制信息 public function copy(){ if(IS_POST){ $ids=I("ids"); if(!$ids){ $this->error("请选择信息"); } $catid=I("target_catid","intval",0); if(!$catid){ $this->error("请选择目标栏目"); } $data=$this->table->where(array( "id"=>array("in",$ids) ))->select(); foreach($data as $v){ $oldId=$v["id"]; //主表插入 unset($v["id"]); $v["catid"]=$catid; $id=$this->table->add($v); //副表插入 $fbData=M("cms_".$this->modelinfo[table_name]."_data")->find($oldId); $fbData["id"]=$id; M("cms_".$this->modelinfo[table_name]."_data")->add($fbData); } $this->table->updateInfoNum($catid); D("UserLog")->add("add",$this->table->getTableName(),$ids); $this->success("操作成功"); }else{ $this->cat=$this->selfModelCat(); $this->display(); } } //移动信息 public function move(){ if(IS_POST){ $ids=I("ids"); if(!$ids){ $this->error("请选择信息"); } $catid=I("target_catid","intval",0); if(!$catid){ $this->error("请选择目标栏目"); } $data=$this->table->where(array( "id"=>array("in",$ids) ))->select(); foreach($data as $v){ $update["id"]=$v[id]; $update["catid"]=$catid; $id=$this->table->save($update); } $this->table->updateInfoNum($this->catid); $this->table->updateInfoNum($catid); D("UserLog")->add("update",$this->table->getTableName(),$ids); $this->success("操作成功"); }else{ $this->cat=$this->selfModelCat(); $this->display("copy"); } } //更新静态页 private function updateViewHtml($id){ $r=$this->table->find($id); if($this->cat[view_type]=="static"&&$r["checked"]){ \Admin\Model\UpdateModel::detailHtml($this->catid,$id,$this->cat["classpath"]); } } //删除静态页 private function deleteViewHtml($ids){ $where["id"]= is_array($ids)?array("IN",$ids):$ids; $data=$this->table->where($where)->select(); foreach($data as $v){ $url=".".$GLOBALS["cat"][$v["catid"]]["classpath"].$v["id"].".html"; @unlink($url); } } }