• 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 );        //交给模板显示
  • 相关阅读:
    Java 密钥库 证书 公钥 私钥
    Theos小例子
    armbian禁用zram
    常见JS混淆器和特征
    命令行工具收藏
    python中生成器的两段代码
    把mysql数据库从windows迁移到linux系统上的方法
    【转载】使用Flink低级处理函数ProcessFunction
    spark读取压缩文件
    SpringBoot系列——validation参数校验
  • 原文地址:https://www.cnblogs.com/dennr/p/4606447.html
Copyright © 2020-2023  润新知