zoukankan      html  css  js  c++  java
  • weiphp 刮刮卡控制器代码

      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 );        //交给模板显示
  • 相关阅读:
    POJ 1015 Jury Compromise【DP】
    POJ 1661 Help Jimmy【DP】
    HDU 1074 Doing Homework【状态压缩DP】
    HDU 1024 Max Sum Plus Plus【DP,最大m子段和】
    占坑补题。。最近占的坑有点多。。。
    Codeforces 659F Polycarp and Hay【BFS】
    Codeforces 659E New Reform【DFS】
    Codeforces 659D Bicycle Race【计算几何】
    廖大python实战项目第四天
    廖大python实战项目第三天
  • 原文地址:https://www.cnblogs.com/dennr/p/4606447.html
Copyright © 2011-2022 走看看