同步操作将从 想天皮克斯/OpenCenter V3 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<?php// +----------------------------------------------------------------------// | OneThink [ WE CAN DO IT JUST THINK IT ]// +----------------------------------------------------------------------// | Copyright (c) 2013 http://www.onethink.cn All rights reserved.// +----------------------------------------------------------------------// | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn>// +----------------------------------------------------------------------namespace Admin\Controller;/*** 模型数据管理控制器* @author 麦当苗儿 <zuojiazi@vip.qq.com>*/class ThinkController extends AdminController {/*** 显示指定模型列表数据* @param String $model 模型标识* @author 麦当苗儿 <zuojiazi@vip.qq.com>*/public function lists($model = null, $p = 0){$model || $this->error('模型名标识必须!');$page = intval($p);$page = $page ? $page : 1; //默认显示第一页数据//获取模型信息$model = M('Model')->getByName($model);$model || $this->error('模型不存在!');//解析列表规则$fields = array();$grids = preg_split('/[;\r\n]+/s', $model['list_grid']);foreach ($grids as &$value) {// 字段:标题:链接$val = explode(':', $value);// 支持多个字段显示$field = explode(',', $val[0]);$value = array('field' => $field, 'title' => $val[1]);if(isset($val[2])){// 链接信息$value['href'] = $val[2];// 搜索链接信息中的字段信息preg_replace_callback('/\[([a-z_]+)\]/', function($match) use(&$fields){$fields[]=$match[1];}, $value['href']);}if(strpos($val[1],'|')){// 显示格式定义list($value['title'],$value['format']) = explode('|',$val[1]);}foreach($field as $val){$array = explode('|',$val);$fields[] = $array[0];}}// 过滤重复字段信息$fields = array_unique($fields);// 关键字搜索$map = array();$key = $model['search_key']?$model['search_key']:'title';if(isset($_REQUEST[$key])){$map[$key] = array('like','%'.$_GET[$key].'%');unset($_REQUEST[$key]);}// 条件搜索foreach($_REQUEST as $name=>$val){if(in_array($name,$fields)){$map[$name] = $val;}}$row = empty($model['list_row']) ? 10 : $model['list_row'];//读取模型数据列表if($model['extend']){$name = get_table_name($model['id']);$parent = get_table_name($model['extend']);$fix = C("DB_PREFIX");$key = array_search('id', $fields);if(false === $key){array_push($fields, "{$fix}{$parent}.id as id");} else {$fields[$key] = "{$fix}{$parent}.id as id";}/* 查询记录数 */$count = M($parent)->join("INNER JOIN {$fix}{$name} ON {$fix}{$parent}.id = {$fix}{$name}.id")->where($map)->count();// 查询数据$data = M($parent)->join("INNER JOIN {$fix}{$name} ON {$fix}{$parent}.id = {$fix}{$name}.id")/* 查询指定字段,不指定则查询所有字段 */->field(empty($fields) ? true : $fields)// 查询条件->where($map)/* 默认通过id逆序排列 */->order("{$fix}{$parent}.id DESC")/* 数据分页 */->page($page, $row)/* 执行查询 */->select();} else {in_array('id', $fields) || array_push($fields, 'id');$name = parse_name(get_table_name($model['id']), true);$data = M($name)/* 查询指定字段,不指定则查询所有字段 */->field(empty($fields) ? true : $fields)// 查询条件->where($map)/* 默认通过id逆序排列 */->order('id DESC')/* 数据分页 */->page($page, $row)/* 执行查询 */->select();/* 查询记录总数 */$count = M($name)->where($map)->count();}//分页if($count > $row){$page = new \Think\Page($count, $row);$page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');$this->assign('_page', $page->show());}$this->assign('model', $model);$this->assign('list_grids', $grids);$this->assign('list_data', $data);$this->meta_title = $model['title'].'列表';$this->display($model['template_list']);}public function del($model = null, $ids=null){$model = M('Model')->find($model);$model || $this->error('模型不存在!');$ids = array_unique((array)I('ids',0));if ( empty($ids) ) {$this->error('请选择要操作的数据!');}$Model = M(get_table_name($model['id']));$map = array('id' => array('in', $ids) );if($Model->where($map)->delete()){$this->success('删除成功');} else {$this->error('删除失败!');}}public function edit($model = null, $id = 0){//获取模型信息$model = M('Model')->find($model);$model || $this->error('模型不存在!');if(IS_POST){$Model = D(parse_name(get_table_name($model['id']),1));// 获取模型的字段信息$Model = $this->checkAttr($Model,$model['id']);if($Model->create() && $Model->save()){$this->success('保存'.$model['title'].'成功!', U('lists?model='.$model['name']));} else {$this->error($Model->getError());}} else {$fields = get_model_attribute($model['id']);//获取数据$data = M(get_table_name($model['id']))->find($id);$data || $this->error('数据不存在!');$this->assign('model', $model);$this->assign('fields', $fields);$this->assign('data', $data);$this->meta_title = '编辑'.$model['title'];$this->display($model['template_edit']?$model['template_edit']:'');}}public function add($model = null){//获取模型信息$model = M('Model')->where(array('status' => 1))->find($model);$model || $this->error('模型不存在!');if(IS_POST){$Model = D(parse_name(get_table_name($model['id']),1));// 获取模型的字段信息$Model = $this->checkAttr($Model,$model['id']);if($Model->create() && $Model->add()){$this->success('添加'.$model['title'].'成功!', U('lists?model='.$model['name']));} else {$this->error($Model->getError());}} else {$fields = get_model_attribute($model['id']);$this->assign('model', $model);$this->assign('fields', $fields);$this->meta_title = '新增'.$model['title'];$this->display($model['template_add']?$model['template_add']:'');}}protected function checkAttr($Model,$model_id){$fields = get_model_attribute($model_id,false);$validate = $auto = array();foreach($fields as $key=>$attr){if($attr['is_must']){// 必填字段$validate[] = array($attr['name'],'require',$attr['title'].'必须!');}// 自动验证规则if(!empty($attr['validate_rule'])) {$validate[] = array($attr['name'],$attr['validate_rule'],$attr['error_info']?$attr['error_info']:$attr['title'].'验证错误',0,$attr['validate_type'],$attr['validate_time']);}// 自动完成规则if(!empty($attr['auto_rule'])) {$auto[] = array($attr['name'],$attr['auto_rule'],$attr['auto_time'],$attr['auto_type']);}elseif('checkbox'==$attr['type']){ // 多选型$auto[] = array($attr['name'],'arr2str',3,'function');}elseif('datetime' == $attr['type']){ // 日期型$auto[] = array($attr['name'],'strtotime',3,'function');}}return $Model->validate($validate)->auto($auto);}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。