2da74dbc1e
2、后台bug修复(获取参数的bug)
165 lines
5.8 KiB
PHP
165 lines
5.8 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\admin\controller;
|
|
use app\common\controller\Admin;
|
|
|
|
class Attribute extends Admin {
|
|
|
|
//保存的Model句柄
|
|
protected $model;
|
|
protected $attr;
|
|
|
|
//初始化
|
|
public function _initialize(){
|
|
parent::_initialize();
|
|
$this->getContentMenu();
|
|
$this->model = model('Attribute');
|
|
//遍历属性列表
|
|
foreach (get_attribute_type() as $key => $value) {
|
|
$this->attr[$key] = $value[0];
|
|
}
|
|
$this->validate_rule = array(
|
|
0=>'请选择',
|
|
'regex'=>'正则验证',
|
|
'function'=>'函数验证',
|
|
'unique'=>'唯一验证',
|
|
'length'=>'长度验证',
|
|
'in'=>'验证在范围内',
|
|
'notin'=>'验证不在范围内',
|
|
'between'=>'区间验证',
|
|
'notbetween'=>'不在区间验证'
|
|
);
|
|
$this->auto_type = array(0=>'请选择','function'=>'函数','field'=>'字段','string'=>'字符串');
|
|
$this->the_time = array(0=>'请选择','3'=>'始 终','1'=>'新 增','2'=>'编 辑');
|
|
$this->field = $this->getField();
|
|
}
|
|
|
|
|
|
/**
|
|
* index方法
|
|
* @author colin <colin@tensent.cn>
|
|
*/
|
|
public function index($model_id = null){
|
|
$map['model_id'] = $model_id;
|
|
if (!$model_id) {
|
|
return $this->error("非法操作!");
|
|
}
|
|
|
|
$list = model('Attribute')->where($map)->order('id desc')->paginate(25);
|
|
|
|
$data = array(
|
|
'list' => $list,
|
|
'model_id'=> $model_id,
|
|
'page' => $list->render()
|
|
);
|
|
$this->assign($data);
|
|
$this->setMeta('字段管理');
|
|
return $this->fetch();
|
|
}
|
|
|
|
/**
|
|
* 创建字段
|
|
* @author colin <colin@tensent.cn>
|
|
*/
|
|
public function add(){
|
|
$model_id = input('model_id','','trim,intval');
|
|
if(IS_POST){
|
|
$result = $this->model->change();
|
|
if ($result) {
|
|
return $this->success("创建成功!",url('Attribute/index',array('model_id'=>$model_id)));
|
|
}else{
|
|
return $this->error($this->model->getError(),'');
|
|
}
|
|
}else{
|
|
if (!$model_id) {
|
|
return $this->error('非法操作!');
|
|
}
|
|
$data = array(
|
|
'info' => array('model_id'=>$model_id),
|
|
'fieldGroup' => $this->field
|
|
);
|
|
$this->assign($data);
|
|
$this->setMeta('添加字段');
|
|
return $this->fetch('public/edit');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 编辑字段方法
|
|
* @author colin <colin@tensent.cn>
|
|
*/
|
|
public function edit(){
|
|
if(IS_POST){
|
|
$result = $this->model->change();
|
|
if ($result) {
|
|
return $this->success("修改成功!",url('Attribute/index',array('model_id'=>$_POST['model_id'])));
|
|
}else{
|
|
return $this->error($this->model->getError(),'');
|
|
}
|
|
}else{
|
|
$id = input('id','','trim,intval');
|
|
$info = db('Attribute')->find($id);
|
|
$data = array(
|
|
'info' => $info,
|
|
'fieldGroup' => $this->field
|
|
);
|
|
$this->assign($data);
|
|
$this->setMeta('编辑字段');
|
|
return $this->fetch('public/edit');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 删除字段信息
|
|
* @var delattr 是否删除字段表里的字段
|
|
* @author colin <colin@tensent.cn>
|
|
*/
|
|
public function del(){
|
|
$id = input('id','','trim,intval');
|
|
if (!$id) {
|
|
return $this->error("非法操作!");
|
|
}
|
|
|
|
$result = $this->model->del($id);
|
|
if ($result) {
|
|
return $this->success("删除成功!");
|
|
}else{
|
|
return $this->error($this->model->getError());
|
|
}
|
|
}
|
|
|
|
//字段编辑所需字段
|
|
protected function getField(){
|
|
return array(
|
|
'基础' => array(
|
|
array('name'=>'id','title'=>'id','help'=>'','type'=>'hidden'),
|
|
array('name'=>'model_id','title'=>'model_id','help'=>'','type'=>'hidden'),
|
|
array('name'=>'name','title'=>'字段名','help'=>'英文字母开头,长度不超过30','type'=>'text'),
|
|
array('name'=>'title','title'=>'字段标题','help'=>'请输入字段标题,用于表单显示','type'=>'text'),
|
|
array('name'=>'type','title'=>'字段类型','help'=>'用于表单中的展示方式','type'=>'select','option'=>$this->attr,'help'=>''),
|
|
array('name'=>'length','title'=>'字段长度','help'=>'字段的长度值','type'=>'text'),
|
|
array('name'=>'extra','title'=>'参数','help'=>'布尔、枚举、多选字段类型的定义数据','type'=>'textarea'),
|
|
array('name'=>'value','title'=>'默认值','help'=>'字段的默认值','type'=>'text'),
|
|
array('name'=>'remark','title'=>'字段备注','help'=>'用于表单中的提示','type'=>'text'),
|
|
array('name'=>'is_show','title'=>'是否显示','help'=>'是否显示在表单中','type'=>'select','option'=>array('1'=>'始终显示','2'=>'新增显示','3'=>'编辑显示','0'=>'不显示'),'value'=>1),
|
|
array('name'=>'is_must','title'=>'是否必填','help'=>'用于自动验证','type'=>'select','option'=>array('0'=>'否','1'=>'是'))
|
|
),
|
|
'高级' => array(
|
|
array('name'=>'validate_type','title'=>'验证方式','type'=>'select','option'=>$this->validate_rule,'help'=>''),
|
|
array('name'=>'validate_rule','title'=>'验证规则','help'=>'根据验证方式定义相关验证规则','type'=>'text'),
|
|
array('name'=>'error_info','title'=>'出错提示','type'=>'text','help'=>''),
|
|
array('name'=>'validate_time','title'=>'验证时间','help'=>'英文字母开头,长度不超过30','type'=>'select','option'=>$this->the_time,'help'=>''),
|
|
array('name'=>'auto_type','title'=>'自动完成方式','help'=>'英文字母开头,长度不超过30','type'=>'select','option'=>$this->auto_type,'help'=>''),
|
|
array('name'=>'auto_rule','title'=>'自动完成规则','help'=>'根据完成方式订阅相关规则','type'=>'text'),
|
|
array('name'=>'auto_time','title'=>'自动完成时间','help'=>'英文字母开头,长度不超过30','type'=>'select','option'=>$this->the_time),
|
|
),
|
|
);
|
|
}
|
|
} |