weiphp 微调研数据管理控制器

  1 <?php
  2 
  3 namespace AddonsSurveyController;
  4 
  5 use HomeControllerAddonsController;
  6 
  7 class AnswerController extends AddonsController {        //调研回复的方法控制器
  8     var $model;        //定义模型变量
  9     var $survey_id;        //调用的调研id
 10     function _initialize() {        //初始化
 11         parent::_initialize();        //调用父级初始化方法
 12         
 13         $this->model = $this->getModel ( 'survey_answer' );        //获取模型数据
 14         
 15         $param ['survey_id'] = $this->survey_id = intval ( $_REQUEST ['survey_id'] );        //获取调研的id
 16         
 17         $res ['title'] = '微调研';        //标题
 18         $res ['url'] = addons_url ( 'Survey://Survey/lists' );        //列表页功能选项url
 19         $res ['class'] = '';
 20         $nav [] = $res;        //返回数组
 21         
 22         $res ['title'] = '数据管理';        //功能标题
 23         $res ['url'] = addons_url ( 'Survey://Answer/lists', $param );        //功能选项url
 24         $res ['class'] = 'current';        //模版标签属性值
 25         $nav [] = $res;        //返回数组
 26         
 27         $this->assign ( 'nav', $nav );        //分配给前台显示
 28     }
 29     // 通用插件的列表模型
 30     public function lists() {        //列表方法
 31         $this->assign ( 'add_button', false );        //设置按钮不显示
 32         $this->assign ( 'search_button', false );        //定义按钮不显示
 33         $this->assign ( 'del_button', false );        //定义按钮不显示
 34         $this->assign ( 'check_all', false );        //定义按钮不显示
 35         
 36         // 解析列表规则
 37         $data = $this->_list_grid ( $this->model );        //从model中获取模型规则
 38         $this->assign ( $data );        //分配给模型显示
 39         
 40         // 搜索条件
 41         $map = $this->_search_map ( $this->model, $data ['fields'] );
 42         
 43         $name = parse_name ( get_table_name ( $this->model ['id'] ), true );    //获得调研id对应的表名
 44         $list = M ( $name )->where ( $map )->order ( 'id DESC' )->group ( 'uid' )->selectPage ();        //查询数据
 45         foreach ( $list ['list_data'] as &$vo ) {        //遍历数据数组
 46             $member = get_memberinfo ( $vo ['uid'] );        //设置$member等于从member表查到的用户信息
 47             if (empty ( $member )) {    //若上面查到的信息为空
 48                 $member = get_followinfo ( $vo ['uid']  );        //$member等于从follow表查到的用户信息
 49             }
 50             $vo ['truename'] = $member ['truename'];    //组装数组中的truename值
 51             $vo ['mobile'] = $member ['mobile'];        //组装数组中的mobile值
 52         }
 53         
 54         $this->assign ( $list );        //把数据分配给模版
 55         
 56         $this->display ();        //调用模板显示
 57     }
 58     function detail() {        //回答内容管理
 59         $this->assign ( 'add_button', false );        //按钮不显示
 60         $this->assign ( 'search_button', false );        //按钮不显示
 61         $this->assign ( 'del_button', false );        //按钮不显示
 62         $this->assign ( 'check_all', false );        //按钮不显示
 63         
 64         // 解析列表规则
 65         $fields [] = 'question';    //设置lists模版显示的数据中fields字段
 66         $fields [] = 'answer';    //设置lists模版显示的数据中fields字段
 67         
 68         $girds ['field'] [0] = 'question';    //设置lists模版显示的数据中list_grids字段
 69         $girds ['title'] = '问题';
 70         $list_data ['list_grids'] [] = $girds;
 71         
 72         $girds ['field'] [0] = 'answer';    //设置lists模版显示的数据中list_grids字段
 73         $girds ['title'] = '回答内容';
 74         $list_data ['list_grids'] [] = $girds;
 75         
 76         $list_data ['fields'] = $fields;    //设置lists模版显示的数据中fields字段
 77         $this->assign ( $list_data );        //数据分配给模板
 78         
 79         $map ['survey_id'] = intval ( $_REQUEST ['survey_id'] );        //获取并转换调研的id
 80         $questions = M ( 'survey_question' )->where ( $map )->select ();        //查询数据库,获取调研的问题信息
 81         foreach ( $questions as $q ) {        //遍历数据数组,赋值给各个变量
 82             $title [$q ['id']] = $q ['title'];
 83             $type [$q ['id']] = $q ['type'];
 84             $extra [$q ['id']] = parse_config_attr ( $q ['extra'] );
 85         }
 86         
 87         $map ['uid'] = intval ( $_REQUEST ['uid'] );        //获取UID
 88         $answers = M ( 'survey_answer' )->where ( $map )->select ();    //查询survey_answer
 89         foreach ( $answers as $a ) {        //遍历$answers
 90             $qid = $a ['question_id'];        //设置变量$qid
 91             $data ['question'] = $title [$qid];        //设置变量$data
 92             $value = unserialize ( $a ['answer'] );        //设置变量value
 93             switch ($type [$qid]) {        //判断并组装数组data分配给前台显示
 94                 case 'radio' :        //单选情况
 95                     $data ['answer'] = $extra [$qid] [$value];
 96                     break;
 97                 case 'checkbox' :        //多选情况
 98                     foreach ( $value as $v ) {        //遍历
 99                         $data ['answer'] [] = $extra [$qid] [$v];
100                     }
101                     $data ['answer'] = implode ( ',', $data ['answer'] );
102                     break;
103                 default :
104                     $data ['answer'] = $value;
105             }
106             $list [] = $data;
107             unset ( $data );
108         }
109         $this->assign ( 'list_data', $list );        //数组传给模板
110         
111         $this->display ( T ( 'lists' ) );    //显示
112     }
113     
114     // 通用插件的删除模型
115     public function del() {
116         parent::common_del ( $this->model );
117     }
118 }
原文地址:https://www.cnblogs.com/dennr/p/4625824.html