标签:
1 <?php 2 3 namespace Addons\Scratch\Controller; 4 5 use Home\Controller\AddonsController; 6 7 class ScratchController extends AddonsController { 8 function edit() { //编辑刮刮卡的方法 9 $id = I ( ‘id‘ ); //获取传参的id 10 $model = $this->getModel (); //获取model数组 11 12 if (IS_POST) { //若有POST传参做下面处理 13 $Model = D ( parse_name ( get_table_name ( $model [‘id‘] ), 1 ) ); //获取表名并专换字符串 14 // 获取模型的字段信息 15 $Model = $this->checkAttr ( $Model, $model [‘id‘] ); //转换字符串格式 16 if ($Model->create () && $Model->save ()) { //如果创建数据并保存成功 17 $this->_saveKeyword ( $model, $id ); //保存关键词 18 19 $this->success ( ‘保存‘ . $model [‘title‘] . ‘成功!‘, U ( ‘lists?model=‘ . $model [‘name‘] ) ); //显示成功并转跳 20 } else { 21 $this->error ( $Model->getError () ); //否则输出错误 22 } 23 } else { 24 $fields = get_model_attribute ( $model [‘id‘] ); //获取属性信息并缓存 25 26 // 获取数据 27 $data = M ( get_table_name ( $model [‘id‘] ) )->find ( $id ); 28 $data || $this->error ( ‘数据不存在!‘ ); //若没有数据,抛出错误 29 30 $token = get_token (); //获取token 31 //验证token值 32 if (isset ( $data [‘token‘] ) && $token != $data [‘token‘] && defined ( ‘ADDON_PUBLIC_PATH‘ )) { 33 $this->error ( ‘非法访问!‘ ); 34 } 35 36 $this->assign ( ‘fields‘, $fields ); 37 $this->assign ( ‘data‘, $data ); 38 $this->meta_title = ‘编辑‘ . $model [‘title‘]; //设置字符串 39 40 $this->_deal_data (); 41 42 $this->display (); 43 } 44 } 45 function add() { //新增方法 46 $model = $this->getModel (); //获取模型值 47 if (IS_POST) { //验证传参 48 $Model = D ( parse_name ( get_table_name ( $model [‘id‘] ), 1 ) ); //获取表名并专换字符串 49 // 获取模型的字段信息 50 $Model = $this->checkAttr ( $Model, $model [‘id‘] ); //验证字符串 51 if ($Model->create () && $id = $Model->add ()) { //如果创建保存成功 52 $this->_saveKeyword ( $model, $id ); //保存关键词 53 54 $this->success ( ‘添加‘ . $model [‘title‘] . ‘成功!‘, U ( ‘lists?model=‘ . $model [‘name‘] ) ); //显示成功并转跳 55 } else { 56 $this->error ( $Model->getError () ); //否则报错 57 } 58 } else { 59 $fields = get_model_attribute ( $model [‘id‘] ); //或者获取模型中id信息并缓存 60 61 $this->assign ( ‘fields‘, $fields ); //传参 62 $this->meta_title = ‘新增‘ . $model [‘title‘]; //设置字符串 63 64 $this->_deal_data (); //处理公共数据 65 66 $this->display (); 67 } 68 } 69 70 // 增加或者编辑时公共部分 71 function _deal_data() { 72 //设置数组 73 $normal_tips = ‘插件场景限制参数说明:格式:[插件名:id],如<br/> 74 [投票:10],表示对ID为10的投票投完对能领取<br/> 75 [投票:*],表示只要投过票就可以领取<br/> 76 [微调研:15],表示完成ID为15的调研就能领取<br/> 77 [微考试:10],表示完成ID为10的考试就能领取<br/>‘; 78 $this->assign ( ‘normal_tips‘, $normal_tips ); //传参给模板 79 } 80 function preview() { //预览方法 81 $this->show (); //调用显示方法显示 82 } 83 function show() { //显示方法 84 $id = $map [‘target_id‘] = I ( ‘id‘ ); //设置map中的target_id值并交给id 85 86 $data = M ( ‘scratch‘ )->find ( $id ); //在数据库中查找id,交给data 87 $this->assign ( ‘data‘, $data ); //传值给模板显示 88 // dump($data); 89 90 // 奖项 91 $map [‘addon‘] = ‘Scratch‘; //赋值 92 $prizes = M ( ‘prize‘ )->where ( $map )->select (); //查表 93 $this->assign ( ‘prizes‘, $prizes ); //传值给模板显示 94 95 // 抽奖记录 96 $all_prizes = M ( ‘sn_code‘ )->where ( $map )->order ( ‘id desc‘ )->select (); 97 // dump ( $all_prizes ); 98 foreach ( $all_prizes as $all ) { //循环数组反馈信息 99 if ($all [‘prize_id‘] > 0) { 100 $has [$all [‘prize_id‘]] += 1; // 每个奖项已经中过的次数 101 $new_prizes [] = $all; // 最新中奖记录 102 $all [‘uid‘] == $this->mid && $my_prizes [] = $all; // 我的中奖记录 103 } else { 104 $no_count += 1; // 没有中奖的次数 105 } 106 107 // 记录我已抽奖的次数 108 $all [‘uid‘] == $this->mid && $my_count += 1; 109 } 110 111 $this->assign ( ‘new_prizes‘, $new_prizes ); //交给模板显示 112 $this->assign ( ‘my_prizes‘, $my_prizes ); //交给模板显示
标签:
原文地址:http://www.cnblogs.com/dennr/p/4606447.html