You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

207 lines
6.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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