207 lines
6.7 KiB
PHP
207 lines
6.7 KiB
PHP
<?php
|
||
/**
|
||
* @copyright (C)2016-2099 Hnaoyun Inc.
|
||
* @author XingMeng
|
||
* @email hnxsh@foxmail.com
|
||
* @date 2018年3月1日
|
||
* 内容模型控制器
|
||
*/
|
||
namespace app\admin\controller\content;
|
||
|
||
use core\basic\Controller;
|
||
use app\admin\model\content\ModelModel;
|
||
|
||
class ModelController extends Controller
|
||
{
|
||
|
||
private $model;
|
||
|
||
public function __construct()
|
||
{
|
||
$this->model = new ModelModel();
|
||
}
|
||
|
||
// 内容模型列表
|
||
public function index()
|
||
{
|
||
if ((! ! $id = get('id', 'int')) && $result = $this->model->getModel($id)) {
|
||
$this->assign('more', true);
|
||
$this->assign('model', $result);
|
||
} else {
|
||
$this->assign('list', true);
|
||
if (! ! ($field = get('field', 'var')) && ! ! ($keyword = get('keyword', 'vars'))) {
|
||
$result = $this->model->findModel($field, $keyword);
|
||
} else {
|
||
$result = $this->model->getList();
|
||
}
|
||
$this->assign('models', $result);
|
||
}
|
||
$this->display('content/model.html');
|
||
}
|
||
|
||
// 内容模型增加
|
||
public function add()
|
||
{
|
||
if ($_POST) {
|
||
// 获取数据
|
||
$mcode = get_auto_code($this->model->getLastCode());
|
||
$name = post('name');
|
||
$type = post('type');
|
||
$urlname = post('urlname');
|
||
$listtpl = basename(post('listtpl'));
|
||
$contenttpl = basename(post('contenttpl'));
|
||
$status = post('status');
|
||
|
||
if (! $name) {
|
||
alert_back('模型名称不能为空!');
|
||
}
|
||
|
||
if ($type == 1) {
|
||
if (! $urlname)
|
||
$urlname = 'about';
|
||
} else {
|
||
if (! $urlname)
|
||
$urlname = 'list';
|
||
}
|
||
|
||
if ($urlname && ! preg_match('/^[a-zA-Z0-9\-]+$/', $urlname)) {
|
||
alert_back('模型URL名称只允许字母、数字、横线组成!');
|
||
}
|
||
|
||
if ($this->model->checkUrlname($urlname, $type)) {
|
||
alert_back('模型URL名称与其他模型冲突,请换一个名称!');
|
||
}
|
||
|
||
if ($this->model->checkSortFilename($urlname)) {
|
||
alert_back('模型URL名称与栏目URL名称冲突,请换一个名称!');
|
||
}
|
||
|
||
// 构建数据
|
||
$data = array(
|
||
'mcode' => $mcode,
|
||
'name' => $name,
|
||
'type' => $type,
|
||
'urlname' => $urlname,
|
||
'listtpl' => $listtpl,
|
||
'contenttpl' => $contenttpl,
|
||
'status' => $status,
|
||
'issystem' => 0,
|
||
'create_user' => session('username'),
|
||
'update_user' => session('username')
|
||
);
|
||
|
||
// 执行添加
|
||
if ($this->model->addModel($data)) {
|
||
$this->log('新增内容模型成功!');
|
||
if (! ! $backurl = get('backurl')) {
|
||
success('新增成功!', base64_decode($backurl));
|
||
} else {
|
||
success('新增成功!', url('/admin/Model/index'));
|
||
}
|
||
} else {
|
||
$this->log('新增内容模型失败!');
|
||
error('新增失败!', - 1);
|
||
}
|
||
}
|
||
}
|
||
|
||
// 内容模型删除
|
||
public function del()
|
||
{
|
||
if (! $id = get('id', 'int')) {
|
||
error('传递的参数值错误!', - 1);
|
||
}
|
||
|
||
if ($this->model->delModel($id)) {
|
||
$this->log('删除内容模型' . $id . '成功!');
|
||
success('删除成功!', - 1);
|
||
} else {
|
||
$this->log('删除内容模型' . $id . '失败!');
|
||
error('删除失败!', - 1);
|
||
}
|
||
}
|
||
|
||
// 内容模型修改
|
||
public function mod()
|
||
{
|
||
if (! $id = get('id', 'int')) {
|
||
error('传递的参数值错误!', - 1);
|
||
}
|
||
|
||
// 单独修改状态
|
||
if (($field = get('field', 'var')) && ! is_null($value = get('value', 'var'))) {
|
||
if ($this->model->modModel($id, "$field='$value',update_user='" . session('username') . "'")) {
|
||
location(- 1);
|
||
} else {
|
||
alert_back('修改失败!');
|
||
}
|
||
}
|
||
|
||
// 修改操作
|
||
if ($_POST) {
|
||
|
||
// 获取数据
|
||
$name = post('name');
|
||
$type = post('type');
|
||
$urlname = post('urlname');
|
||
$listtpl = basename(post('listtpl'));
|
||
$contenttpl = basename(post('contenttpl'));
|
||
$status = post('status');
|
||
|
||
if (! $name) {
|
||
alert_back('模型名称不能为空!');
|
||
}
|
||
|
||
if ($type == 1) {
|
||
if (! $urlname)
|
||
$urlname = 'about';
|
||
} else {
|
||
if (! $urlname)
|
||
$urlname = 'list';
|
||
}
|
||
|
||
if ($urlname && ! preg_match('/^[a-zA-Z0-9\-]+$/', $urlname)) {
|
||
alert_back('模型URL名称只允许字母、数字、横线组成!');
|
||
}
|
||
|
||
if ($this->model->checkUrlname($urlname, $type, "id<>$id")) {
|
||
alert_back('模型URL名称与其他模型冲突,请换一个名称!');
|
||
}
|
||
|
||
if ($this->model->checkSortFilename($urlname)) {
|
||
alert_back('模型URL名称与栏目URL名称冲突,请换一个名称!');
|
||
}
|
||
|
||
// 构建数据
|
||
$data = array(
|
||
'name' => $name,
|
||
'type' => $type,
|
||
'urlname' => $urlname,
|
||
'listtpl' => $listtpl,
|
||
'contenttpl' => $contenttpl,
|
||
'status' => $status,
|
||
'update_user' => session('username')
|
||
);
|
||
|
||
// 执行添加
|
||
if ($this->model->modModel($id, $data)) {
|
||
$this->log('修改内容模型' . $id . '成功!');
|
||
if (! ! $backurl = get('backurl')) {
|
||
success('修改成功!', base64_decode($backurl));
|
||
} else {
|
||
success('修改成功!', url('/admin/Model/index'));
|
||
}
|
||
} else {
|
||
location(- 1);
|
||
}
|
||
} else {
|
||
// 调取修改内容
|
||
$this->assign('mod', true);
|
||
if (! $result = $this->model->getModel($id)) {
|
||
error('编辑的内容已经不存在!', - 1);
|
||
}
|
||
$this->assign('model', $result);
|
||
$this->display('content/model.html');
|
||
}
|
||
}
|
||
} |