Files
sentcms/app/controller/admin/Content.php
T
2020-03-31 16:17:45 +08:00

217 lines
5.6 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.tensent.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +----------------------------------------------------------------------
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 <ycgpp@126.com>
*/
public function index() {
if ($this->modelInfo['list_grid'] == '') {
return $this->error("列表定义不正确!", url('/admin/model/edit', array('id' => $this->modelInfo['id'])));
}
$order = "id desc";
$map = [];
$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']
);
if ($this->modelInfo['template_list']) {
$template = 'admin/content/' . $this->modelInfo['template_list'];
} else {
$template = 'admin/content/index';
}
return $this->fetch($template);
}
/**
* @title 内容添加
* @author molong <ycgpp@126.com>
*/
public function add() {
if ($this->request->isPost()) {
$result = $this->model->save($this->request->post());
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),
];
if ($this->modelInfo['template_add']) {
$template = 'admin/content/' . $this->modelInfo['template_add'];
} else {
$template = 'admin/public/edit';
}
return $this->fetch($template);
}
}
/**
* @title 内容修改
* @author molong <ycgpp@126.com>
*/
public function edit($id) {
if ($this->request->isPost()) {
$result = $this->model->save($this->request->post());
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'),
);
if ($this->modelInfo['template_edit']) {
$template = 'admin/content/' . $this->modelInfo['template_edit'];
} else {
$template = 'admin/public/edit';
}
return $this->fetch($template);
}
}
/**
* @title 内容删除
* @author molong <ycgpp@126.com>
*/
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 <ycgpp@126.com>
*/
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 <ycgpp@126.com>
*/
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 朱亚杰 <xcoolcc@gmail.com>
*/
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;
}
}