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

190 lines
5.7 KiB
PHTML

2 years ago
<?php
// +----------------------------------------------------------------------
// | OneThink [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: huajie <banhuajie@163.com>
// +----------------------------------------------------------------------
namespace Admin\Controller;
use Admin\Model\AuthGroupModel;
/**
* 模型管理控制器
* @author huajie <banhuajie@163.com>
*/
class ModelController extends AdminController {
/**
* 模型管理首页
* @author huajie <banhuajie@163.com>
*/
public function index(){
$map = array('status'=>array('gt',-1));
$list = $this->lists('Model',$map);
int_to_string($list);
// 记录当前列表页的cookie
Cookie('__forward__',$_SERVER['REQUEST_URI']);
$this->assign('_list', $list);
$this->meta_title = '模型管理';
$this->m_title = '模型管理';
$url = 'Model/index';
$this->m_url = $url;
$this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find());
$this->display();
}
/**
* 新增页面初始化
* @author huajie <banhuajie@163.com>
*/
public function add(){
//获取所有的模型
$models = M('Model')->where(array('extend'=>0))->field('id,title')->select();
$this->assign('models', $models);
$this->meta_title = '新增模型';
$this->m_title = '模型管理';
$url = 'Model/index';
$this->m_url = $url;
$this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find());
$this->display();
}
/**
* 编辑页面初始化
* @author huajie <banhuajie@163.com>
*/
public function edit(){
$id = I('get.id','');
if(empty($id)){
$this->error('参数不能为空!');
}
/*获取一条记录的详细数据*/
$Model = M('Model');
$data = $Model->field(true)->find($id);
if(!$data){
$this->error($Model->getError());
}
$data['attribute_list'] = empty($data['attribute_list']) ? '' : explode(",", $data['attribute_list']);
$fields = M('Attribute')->where(array('model_id'=>$data['id']))->getField('id,name,title,is_show',true);
$fields = empty($fields) ? array() : $fields;
// 是否继承了其他模型
if($data['extend'] != 0){
$extend_fields = M('Attribute')->where(array('model_id'=>$data['extend']))->getField('id,name,title,is_show',true);
$fields += $extend_fields;
}
// 梳理属性的可见性
foreach ($fields as $key=>$field){
if (!empty($data['attribute_list']) && !in_array($field['id'], $data['attribute_list'])) {
$fields[$key]['is_show'] = 0;
}
}
// 获取模型排序字段
$field_sort = json_decode($data['field_sort'], true);
if(!empty($field_sort)){
foreach($field_sort as $group => $ids){
foreach($ids as $key => $value){
$fields[$value]['group'] = $group;
$fields[$value]['sort'] = $key;
}
}
}
// 模型字段列表排序
$fields = list_sort_by($fields,"sort");
$this->assign('fields', $fields);
$this->assign('info', $data);
$this->meta_title = '编辑模型';
$this->m_title = '模型管理';
$url = 'Model/index';
$this->m_url = $url;
$this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find());
$this->display();
}
/**
* 删除一条数据
* @author huajie <banhuajie@163.com>
*/
public function del(){
$ids = I('get.ids');
empty($ids) && $this->error('参数不能为空!');
$ids = explode(',', $ids);
foreach ($ids as $value){
$res = D('Model')->del($value);
if(!$res){
break;
}
}
if(!$res){
$this->error(D('Model')->getError());
}else{
$this->success('删除模型成功!');
}
}
/**
* 更新一条数据
* @author huajie <banhuajie@163.com>
*/
public function update(){
$res = D('Model')->update();
if(!$res){
$this->error(D('Model')->getError());
}else{
\Think\Log::actionLog('Category/add','Category',1);
$this->success($res['id']?'更新成功':'新增成功', Cookie('__forward__'));
}
}
/**
* 生成一个模型
* @author huajie <banhuajie@163.com>
*/
public function generate(){
if(!IS_POST){
//获取所有的数据表
$tables = D('Model')->getTables();
$this->assign('tables', $tables);
$this->meta_title = '生成模型';
$this->m_title = '模型管理';
$url = 'Model/index';
$this->m_url = $url;
$this->assign('commonset',M('Kuaijieicon')->where(['url'=>$url,'status'=>1])->find());
$this->display();
}else{
$table = I('post.table');
empty($table) && $this->error('请选择要生成的数据表!');
$res = D('Model')->generate($table,I('post.name'),I('post.title'));
if($res){
$this->success('生成模型成功!', U('index'));
}else{
$this->error(D('Model')->getError());
}
}
}
}