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
PHTML

5 years ago
<?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;
}
}