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.
163 lines
5.4 KiB
PHP
163 lines
5.4 KiB
PHP
<?php
|
|
namespace Admin\Event;
|
|
use Think\Controller;
|
|
/**
|
|
* 后台事件控制器
|
|
* @author 王贺
|
|
*/
|
|
class ThinkEvent extends Controller {
|
|
|
|
public function lists($model = null, $p = 0){
|
|
$model || $this->error('模型名标识必须!');
|
|
$page = intval($p);
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
|
//解析列表规则
|
|
$fields = $model['fields'];
|
|
// 关键字搜索
|
|
$map = $model['map'];
|
|
$key = $model['key'];
|
|
|
|
if(!empty($model['field_time'])){
|
|
if(isset($_REQUEST['time-start']) && isset($_REQUEST['time-end'])){
|
|
$map[$model['field_time']] = array('BETWEEN',array(strtotime($_REQUEST['time-start']),strtotime($_REQUEST['time-end'])));
|
|
unset($_REQUEST['time-start']);unset($_REQUEST['time-end']);
|
|
}
|
|
}
|
|
foreach ($key as $key => $value) {
|
|
if(isset($_REQUEST[$value])){
|
|
$map[$value] = array('like','%'.$_GET[$value].'%');
|
|
unset($_REQUEST[$value]);
|
|
}
|
|
}
|
|
// 条件搜索
|
|
foreach($_REQUEST as $name=>$val){
|
|
if(in_array($name,$fields)){
|
|
$map[$name] = $val;
|
|
}
|
|
}
|
|
|
|
$row = empty($model['list_row']) ? 10 : $model['list_row'];
|
|
|
|
//读取模型数据列表
|
|
$name = $model['m_name'];
|
|
$data = D($name)
|
|
/* 查询指定字段,不指定则查询所有字段 */
|
|
->field(empty($fields) ? true : $fields)
|
|
// 查询条件
|
|
->where($map)
|
|
/* 默认通过id逆序排列 */
|
|
->order($model['order'])
|
|
/* 数据分页 */
|
|
->page($page, $row)
|
|
/* 执行查询 */
|
|
->select();
|
|
|
|
/* 查询记录总数 */
|
|
$count = D($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_data', $data);
|
|
$this->meta_title = $model['title'].'列表';
|
|
$this->display($model['template_list']);
|
|
}
|
|
|
|
|
|
public function join_lists($model = null, $p = 0){
|
|
$model || $this->error('模型名标识必须!');
|
|
$page = intval($p);
|
|
$page = $page ? $page : 1; //默认显示第一页数据
|
|
|
|
//解析列表规则
|
|
$fields = $model['fields'];
|
|
// 关键字搜索
|
|
$map = $model['map'];
|
|
$key = $model['key'];
|
|
|
|
if(!empty($model['field_time'])){
|
|
if(isset($_REQUEST['time-start']) && isset($_REQUEST['time-end'])){
|
|
$map[$model['field_time']] = array('BETWEEN',array(strtotime($_REQUEST['time-start']),strtotime($_REQUEST['time-end'])));
|
|
unset($_REQUEST['time-start']);unset($_REQUEST['time-end']);
|
|
}
|
|
}
|
|
foreach ($key as $key => $value) {
|
|
if(isset($_REQUEST[$value])){
|
|
$map[$value] = array('like','%'.$_GET[$value].'%');
|
|
unset($_REQUEST[$value]);
|
|
}
|
|
}
|
|
// 条件搜索
|
|
foreach($_REQUEST as $name=>$val){
|
|
if(in_array($name,$fields)){
|
|
$map[$name] = $val;
|
|
}
|
|
}
|
|
|
|
$row = empty($model['list_row']) ? 10 : $model['list_row'];
|
|
|
|
//读取模型数据列表
|
|
$name = $model['m_name'];
|
|
$data = D($name)
|
|
/* 查询指定字段,不指定则查询所有字段 */
|
|
->field(empty($fields) ? true : $fields)
|
|
->join($model['join'])
|
|
// 查询条件
|
|
->where($map)
|
|
/* 默认通过id逆序排列 */
|
|
->order($model['order'])
|
|
/* 数据分页 */
|
|
->page($page, $row)
|
|
/* 执行查询 */
|
|
->select();
|
|
|
|
/* 查询记录总数 */
|
|
$count = D($name)->where($map)->join($model['join'])->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_data', $data);
|
|
$this->meta_title = $model['title'].'列表';
|
|
$this->display($model['template_list']);
|
|
|
|
}
|
|
|
|
public function extend_edit($model = null, $id = 0,$data){
|
|
|
|
if(IS_POST){
|
|
$Model = D($model['m_name']);
|
|
if($Model->save($data)){
|
|
$this->success('保存'.$model['title'].'成功!', U($model['jump_url']));
|
|
} else {
|
|
$this->error($Model->getError());
|
|
}
|
|
} else {
|
|
//获取数据
|
|
$data = D($model['m_name'])->find($id);
|
|
$data || $this->error('数据不存在!');
|
|
|
|
$this->assign('model', $model);
|
|
$this->assign('data', $data);
|
|
$this->meta_title = '编辑'.$model['title'];
|
|
$this->display($model['template_edit']?$model['template_edit']:'');
|
|
}
|
|
}
|
|
|
|
public function model_entity($id,$model){
|
|
$entity = D($model['m_name']);
|
|
$map[$model['field']] = $id;
|
|
$data = $entity->where($map)->find();
|
|
return $data;
|
|
}
|
|
}
|