// +---------------------------------------------------------------------- namespace app\controller\admin; use think\facade\Db; use app\model\Model; use app\model\Attribute; /** * @title 内容管理 */ class Content extends Base { public $modelInfo = []; public $model = null; public function initialize() { parent::initialize(); $this->getContentMenu(); $this->modelInfo = Model::where('name', $this->request->param('name'))->find()->append(['grid_list', 'attr_group'])->toArray(); $this->model = Db::name($this->modelInfo['name']); } /** * @title 内容列表 * @return [html] [页面内容] * @author molong */ public function index() { $param = $this->request->param(); if ($this->modelInfo['list_grid'] == '') { return $this->error("列表定义不正确!", url('/admin/model/edit', array('id' => $this->modelInfo['id']))); } $order = "id desc"; $map = []; if (isset($param['keyword']) && $param['keyword'] != '') { $map[] = ['title', 'LIKE', '%'.$param['keyword'].'%']; } $list = $this->model->where($map)->order($order)->paginate($this->modelInfo['list_row'], false, array( 'query' => $this->request->param(), )); $this->data = array( 'grid' => $this->modelInfo['grid_list'], 'list' => $list, 'page' => $list->render(), 'model_name' => $this->modelInfo['name'], 'model_id' => $this->modelInfo['id'], 'meta_title' => $this->modelInfo['title'].'列表', 'param' => $param ); if ($this->modelInfo['template_list']) { $template = 'admin/content/' . $this->modelInfo['template_list']; } else { $template = 'admin/content/index'; } return $this->fetch($template); } /** * @title 内容添加 * @author molong */ public function add() { if ($this->request->isPost()) { $data = $this->request->post(); $data['create_time'] = time(); $data['update_time'] = time(); $data['uid'] = session('userInfo.uid'); $result = $this->model->save($data); if ($result) { return $this->success("添加成功!", url('/admin/'.$this->modelInfo['name'].'/index')); } else { return $this->error('添加失败!'); } } else { $info = [ 'model_name' => $this->modelInfo['name'], 'model_id' => $this->modelInfo['id'] ]; $this->data = [ 'info' => $info, 'fieldGroup' => Attribute::getField($this->modelInfo), 'meta_title' => $this->modelInfo['title'].'添加' ]; if ($this->modelInfo['template_add']) { $template = 'admin/content/' . $this->modelInfo['template_add']; } else { $template = 'admin/public/edit'; } return $this->fetch($template); } } /** * @title 内容修改 * @author molong */ public function edit($id) { if ($this->request->isPost()) { $data = $this->request->post(); $data['update_time'] = time(); $result = $this->model->save($data); if ($result !== false) { return $this->success("更新成功!", url('/admin/'.$this->modelInfo['name'].'/index')); } else { return $this->error('修改失败!'); } } else { if (!$id) { return $this->error("非法操作!"); } $info = $this->model->find($id); if (!$info) { return $this->error('无此数据!'); } $info['model_id'] = $this->modelInfo['id']; $this->data = array( 'info' => $info, 'fieldGroup' => Attribute::getField($this->modelInfo, 'edit'), 'meta_title' => $this->modelInfo['title'].'修改' ); if ($this->modelInfo['template_edit']) { $template = 'admin/content/' . $this->modelInfo['template_edit']; } else { $template = 'admin/public/edit'; } return $this->fetch($template); } } /** * @title 内容删除 * @author molong */ public function del() { $id = $this->request->param('id', ''); $map = []; if (!$id) { return $this->error('请选择要操作的数据!'); } if (is_array($id)) { $map[] = ['id', 'IN', $id]; }else{ $map[] = ['id', '=', $id]; } $result = $this->model->where($map)->delete(); if (false !== $result) { return $this->success("删除成功!"); } else { return $this->error("删除失败!"); } } /** * @title 设置状态 * @author molong */ public function status() { $id = $this->request->param('id', ''); $status = $this->request->param('status', 1); if (!$id) { return $this->error('请选择要操作的数据!'); } $result = $this->model->where('id', $id)->update(['status' => $status]); if (false !== $result) { return $this->success("操作成功!"); } else { return $this->error("操作失败!!"); } } /** * @title 设置置顶 * @author molong */ public function settop() { $id = $this->request->param('id', ''); $is_top = $this->request->param('is_top', 1); if (!$id) { return $this->error('请选择要操作的数据!'); } $result = $this->model->where('id', $id)->update(['is_top' => $is_top]); if (false !== $result) { return $this->success("操作成功!"); } else { return $this->error("操作失败!!"); } } /** * 检测需要动态判断的文档类目有关的权限 * * @return boolean|null * 返回true则表示当前访问有权限 * 返回false则表示当前访问无权限 * 返回null,则会进入checkRule根据节点授权判断权限 * * @author 朱亚杰 */ protected function checkDynamic() { $model_id = $this->request->param('model_id'); if (IS_ROOT) { return true; //管理员允许访问任何页面 } $models = model('AuthGroup')->getAuthModels(session('user_auth.uid')); if (!$model_id) { return false; } elseif (in_array($model_id, $models)) { //返回null继续判断操作权限 return null; } else { return false; //无权限 } return false; } }