您的位置:首页 > 编程语言 > PHP开发

weiphp 微调研数据管理控制器

2015-07-07 01:05 495 查看
<?php

namespace Addons\Survey\Controller;

use Home\Controller\AddonsController;

class AnswerController extends AddonsController {        //调研回复的方法控制器
var $model;        //定义模型变量
var $survey_id;        //调用的调研id
function _initialize() {        //初始化
parent::_initialize();        //调用父级初始化方法

$this->model = $this->getModel ( 'survey_answer' );        //获取模型数据

$param ['survey_id'] = $this->survey_id = intval ( $_REQUEST ['survey_id'] );        //获取调研的id

$res ['title'] = '微调研';        //标题
$res ['url'] = addons_url ( 'Survey://Survey/lists' );        //列表页功能选项url
$res ['class'] = '';
$nav [] = $res;        //返回数组

$res ['title'] = '数据管理';        //功能标题
$res ['url'] = addons_url ( 'Survey://Answer/lists', $param );        //功能选项url
$res ['class'] = 'current';        //模版标签属性值
$nav [] = $res;        //返回数组

$this->assign ( 'nav', $nav );        //分配给前台显示
}
// 通用插件的列表模型
public function lists() {        //列表方法
$this->assign ( 'add_button', false );        //设置按钮不显示
$this->assign ( 'search_button', false );        //定义按钮不显示
$this->assign ( 'del_button', false );        //定义按钮不显示
$this->assign ( 'check_all', false );        //定义按钮不显示

// 解析列表规则
$data = $this->_list_grid ( $this->model );        //从model中获取模型规则
$this->assign ( $data );        //分配给模型显示

// 搜索条件
$map = $this->_search_map ( $this->model, $data ['fields'] );

$name = parse_name ( get_table_name ( $this->model ['id'] ), true );    //获得调研id对应的表名
$list = M ( $name )->where ( $map )->order ( 'id DESC' )->group ( 'uid' )->selectPage ();        //查询数据
foreach ( $list ['list_data'] as &$vo ) {        //遍历数据数组
$member = get_memberinfo ( $vo ['uid'] );        //设置$member等于从member表查到的用户信息
if (empty ( $member )) {    //若上面查到的信息为空
$member = get_followinfo ( $vo ['uid']  );        //$member等于从follow表查到的用户信息
}
$vo ['truename'] = $member ['truename'];    //组装数组中的truename值
$vo ['mobile'] = $member ['mobile'];        //组装数组中的mobile值
}

$this->assign ( $list );        //把数据分配给模版

$this->display ();        //调用模板显示
}
function detail() {        //回答内容管理
$this->assign ( 'add_button', false );        //按钮不显示
$this->assign ( 'search_button', false );        //按钮不显示
$this->assign ( 'del_button', false );        //按钮不显示
$this->assign ( 'check_all', false );        //按钮不显示

// 解析列表规则
$fields [] = 'question';    //设置lists模版显示的数据中fields字段
$fields [] = 'answer';    //设置lists模版显示的数据中fields字段

$girds ['field'] [0] = 'question';    //设置lists模版显示的数据中list_grids字段
$girds ['title'] = '问题';
$list_data ['list_grids'] [] = $girds;

$girds ['field'] [0] = 'answer';    //设置lists模版显示的数据中list_grids字段
$girds ['title'] = '回答内容';
$list_data ['list_grids'] [] = $girds;

$list_data ['fields'] = $fields;    //设置lists模版显示的数据中fields字段
$this->assign ( $list_data );        //数据分配给模板

$map ['survey_id'] = intval ( $_REQUEST ['survey_id'] );        //获取并转换调研的id
$questions = M ( 'survey_question' )->where ( $map )->select ();        //查询数据库,获取调研的问题信息
foreach ( $questions as $q ) {        //遍历数据数组,赋值给各个变量
$title [$q ['id']] = $q ['title'];
$type [$q ['id']] = $q ['type'];
$extra [$q ['id']] = parse_config_attr ( $q ['extra'] );
}

$map ['uid'] = intval ( $_REQUEST ['uid'] );        //获取UID
$answers = M ( 'survey_answer' )->where ( $map )->select ();    //查询survey_answer
foreach ( $answers as $a ) {        //遍历$answers
$qid = $a ['question_id'];        //设置变量$qid
$data ['question'] = $title [$qid];        //设置变量$data
$value = unserialize ( $a ['answer'] );        //设置变量value
switch ($type [$qid]) {        //判断并组装数组data分配给前台显示
case 'radio' :        //单选情况
$data ['answer'] = $extra [$qid] [$value];
break;
case 'checkbox' :        //多选情况
foreach ( $value as $v ) {        //遍历
$data ['answer'] [] = $extra [$qid] [$v];
}
$data ['answer'] = implode ( ',', $data ['answer'] );
break;
default :
$data ['answer'] = $value;
}
$list [] = $data;
unset ( $data );
}
$this->assign ( 'list_data', $list );        //数组传给模板

$this->display ( T ( 'lists' ) );    //显示
}

// 通用插件的删除模型
public function del() {
parent::common_del ( $this->model );
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: