2022-01-24 10:43:35 +08:00

207 lines
6.7 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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');
}
}
}