public function index() { Fn::ajax_call($this, 'removeExamRelate', 'setExamRelateFlag'); $data = array(); $cond_param = array('er_exampid' => 0); $size = 15; $page = isset($_GET['page']) && intval($_GET['page']) > 1 ? intval($_GET['page']) : 1; $offset = ($page - 1) * $size; $list = array(); $total = ZmossModel::examRelatelistCount($cond_param); if ($total) { $list = ZmossModel::examRelatelist($cond_param, $page, $size); $er_exampid = array(); foreach ($list as $k => $val) { $er_exampid[] = $val['er_examid']; unset($list[$k]); $list[$val['er_examid']] = $val; } $cond_param['er_exampid'] = implode(',', $er_exampid); $list2 = ZmossModel::examRelatelist($cond_param); $zmoss_examid = array(); foreach ($list2 as $item) { $list[$item['er_exampid']]['child'][] = $item; $zmoss_examid[] = $list[$item['er_exampid']]['er_zmoss_examid']; } $zmoss_examid = array_unique($zmoss_examid); $data['examrelatelist'] = ZmossModel::examlist('*', array('exam_id' => implode(',', $zmoss_examid))); } $data['list'] = $list; $data['admin_list'] = CpUserModel::get_cpuser_list(); // 分页 $purl = site_url('admin/zmoss/index/'); $data['pagination'] = multipage($total, $size, $page, $purl); $data['er_flag'] = array('未同步', '进行中', '同步失败', '同步成功'); $data['is_setexamrelate_priv'] = $this->check_power_new('zmoss_setexamrelate', false); $data['is_setexamrelatequestion_priv'] = $this->check_power_new('zmoss_setexamrelatequestion', false); $data['is_sync_result_priv'] = $this->check_power_new('zmoss_sync', false); $data['is_remove_priv'] = $this->check_power_new('zmoss_remove', false); $data['is_showresult_priv'] = $this->check_power_new('exam_index', false); // 模版 $this->load->view('zmoss/index', $data); }
/** * 听力题-预览 * * @return void */ public function correct($parent_id = 0) { // 读取题干信息 $parent_id = intval($parent_id); $this->examine_permission($parent_id); $parent_id && ($parent = QuestionModel::get_question($parent_id)); if (empty($parent) or !$parent['is_parent']) { message('改错题不存在!'); exit; } if (!QuestionModel::check_question_power($parent_id, 'r')) { return; } //判断该试题已经被考试过 或 正在被考 $parent['be_tested'] = QuestionModel::question_has_test_action($parent_id); $grades = C('grades'); $qtypes = C('qtype'); $subjects = CpUserModel::get_allowed_subjects(); $subject_types = C('subject_type'); // 类型、学科属性(文理科)、难易度 $class_list = ClassModel::get_class_list(); $show_subject_type = $parent['subject_id'] <= 3 && $parent['end_grade'] >= 11; $class_names = array(); $query = $this->db->get_where('relate_class', array('ques_id' => $parent_id)); foreach ($query->result_array() as $arr) { $subject_type = $show_subject_type ? ' , ' . $subject_types[$arr['subject_type']] : ''; $class_names[$arr['grade_id']][] = isset($class_list[$arr['class_id']]['class_name']) ? $class_list[$arr['class_id']]['class_name'] . '[难易度:' . $arr['difficulty'] . $subject_type . ']' : ''; } $parent['class_names'] = $class_names; // 技能 $skill_ids = explode(',', trim($parent['skill'], ',')); $arr_tmp = array(); if ($skill_ids) { $query = $this->db->select('skill_name')->where_in('id', $skill_ids)->get('skill'); foreach ($query->result_array() as $row) { $arr_tmp[] = $row['skill_name']; } } $parent['skill_name'] = implode(',', $arr_tmp); $parent['count_subject_method_tactics'] = $this->_count_subject_method_tactics($parent['subject_id']); // 知识点 $knowledge_ids = explode(',', trim($parent['knowledge'], ',')); $arr_tmp = array(); if ($knowledge_ids) { $query = $this->db->select('knowledge_name')->where_in('id', $knowledge_ids)->get('knowledge'); foreach ($query->result_array() as $row) { $arr_tmp[] = $row['knowledge_name']; } } $parent['knowledge_name'] = implode(',', $arr_tmp); $parent['start_grade'] = isset($grades[$parent['start_grade']]) ? $grades[$parent['start_grade']] : ''; $parent['end_grade'] = isset($grades[$parent['end_grade']]) ? $grades[$parent['end_grade']] : ''; $parent['subject_name'] = isset($subjects[$parent['subject_id']]) ? $subjects[$parent['subject_id']] : ''; $parent['addtime'] = date('Y-m-d H:i', $parent['addtime']); $parent['title'] = str_replace("\n", '<br/>', $parent['title']); /** ---------------- 真题 ----------------- */ if ($parent['is_original'] == 2) { $relateds = $this->db->query("select ques_id from {pre}question where related={$parent_id}")->result_array(); if (count($relateds) > 0) { $parent['relateds'] = $relateds; } } elseif ($parent['related']) { $related = $parent['related']; $relateds = $this->db->query("select ques_id from {pre}question where related={$related}")->result_array(); if (count($relateds) > 0) { $parent['relateds'] = $relateds; } } $cpusers = CpUserModel::get_cpuser_list(); // 读取子题信息 $query = $this->db->select('ques_id,type,title,picture,answer,knowledge,method_tactic,group_type,admin_id,addtime')->get_where('question', array('parent_id' => $parent_id, 'is_delete' => 0)); $list = $query->result_array(); foreach ($list as &$row) { $row['cpuser'] = isset($cpusers[$row['admin_id']]['realname']) ? $cpusers[$row['admin_id']]['realname'] : ''; $row['addtime'] = date('Y-m-d H:i:s', $row['addtime']); $query = $this->db->get_where('option', array('ques_id' => $row['ques_id'])); $row['options'] = $query->result_array(); foreach ($row['options'] as $key => $arr) { $row['options'][$key]['is_answer'] = in_array($arr['option_id'], explode(',', $row['answer'])); } // 知识点 $query = $this->db->select('k.knowledge_name, rk.knowledge_id, rk.know_process')->from('relate_knowledge rk')->join('knowledge k', 'rk.knowledge_id=k.id', 'left')->where_in('rk.ques_id', $row['ques_id'])->get(); $knowledge_arr = array(); foreach ($query->result_array() as $arr) { $knowledge_arr[] = $arr['knowledge_name'] . '(认知过程:' . C('know_process/' . $arr['know_process']) . ')'; } $row['knowledge_name'] = count($knowledge_arr) ? implode(',', $knowledge_arr) : '<font style="font-size:15px;color:red;">该子题还未添加知识点</font>'; //方法策略 $query = $this->db->select('mt.name')->from('relate_method_tactic rmt')->join('method_tactic mt', 'rmt.method_tactic_id=mt.id', 'left')->where('rmt.ques_id', $row['ques_id'])->get(); $method_tactic_arr = array(); foreach ($query->result_array() as $arr) { $method_tactic_arr[] = $arr['name']; } $method_tactic_arr = array_filter($method_tactic_arr); $row['method_tactic_name'] = implode(',', $method_tactic_arr); if ($row['group_type']) { $query = $this->db->select('gt.group_type_name')->from('relate_group_type rgt')->join('group_type gt', 'rgt.group_type_id=gt.id', 'left')->where('rgt.ques_id', $row['ques_id'])->get(); $group_type_arr = array(); foreach ($query->result_array() as $arr) { $group_type_arr[] = $arr['group_type_name']; } $group_type_arr = array_filter($group_type_arr); $row['group_type_name'] = implode(',', $group_type_arr); } } // 读取子题信息(已删除) $query = $this->db->select('ques_id,type,title,picture,answer,admin_id,addtime')->get_where('question', array('parent_id' => $parent_id, 'is_delete' => 1)); $list2 = $query->result_array(); foreach ($list2 as &$row) { $row['cpuser'] = isset($cpusers[$row['admin_id']]['realname']) ? $cpusers[$row['admin_id']]['realname'] : ''; $row['addtime'] = date('Y-m-d H:i:s', $row['addtime']); $query = $this->db->get_where('option', array('ques_id' => $row['ques_id'])); $row['options'] = $query->result_array(); } $data['qtypes'] = $qtypes; $data['grades'] = $grades; $data['parent'] = $parent; $data['list'] = $list; $data['list2'] = $list2; // 模版 $this->load->view('question_external/correct', $data); }
public function group($group_id = 0) { if (!$this->check_power('question_manage')) { return; } $group_id = intval($group_id); if ($group_id) { $query = $this->db->get_where('relate_group', array('group_id' => $group_id)); $group = $query->row_array(); } if (empty($group)) { $site_url = site_url('/admin/question/index'); header("location: {$site_url}"); // message('关联分组不存在。','/admin/question/index'); return; } $cpusers = CpUserModel::get_cpuser_list(); // 加载分类数据 $class_list = ClassModel::get_class_list(); $subjects = CpUserModel::get_allowed_subjects(); $grades = C('grades'); $qtypes = C('qtype'); $periods = C('grade_period'); $langs = C('interview_lang'); $types = C('interview_type'); $list_ques = $list_interview = array(); $query = $this->db->get_where('question', array('group_id' => $group_id, 'parent_id' => 0, 'is_delete' => 0)); foreach ($query->result_array() as $row) { $row_cids = explode(',', trim($row['class_id'], ',')); $row_cname = array(); foreach ($row_cids as $cid) { $row_cname[] = isset($class_list[$cid]['class_name']) ? $class_list[$cid]['class_name'] : ''; } $row['class_name'] = implode(',', $row_cname); $row['start_grade'] = isset($grades[$row['start_grade']]) ? $grades[$row['start_grade']] : ''; $row['qtype'] = isset($qtypes[$row['type']]) ? $qtypes[$row['type']] : ''; $row['end_grade'] = isset($grades[$row['end_grade']]) ? $grades[$row['end_grade']] : ''; $row['subject_name'] = isset($subjects[$row['subject_id']]) ? $subjects[$row['subject_id']] : ''; $row['addtime'] = date('Y-m-d H:i', $row['addtime']); $row['cpuser'] = isset($cpusers[$row['admin_id']]['realname']) ? $cpusers[$row['admin_id']]['realname'] : ''; $row['has_edit_power'] = QuestionModel::check_question_power($row['ques_id'], 'w', false); //判断该试题已经被考试过 或 正在被考 $row['be_tested'] = QuestionModel::question_has_test_action($row['ques_id']); $list_ques[] = $row; } $query2 = $this->db->get_where('interview_question', array('group_id' => $group_id, 'is_delete' => 0)); foreach ($query2->result_array() as $row) { // 类型 $row_cids = explode(',', trim($row['class_id'], ',')); $row_cname = array(); foreach ($row_cids as $cid) { $row_cname[] = isset($class_list[$cid]['class_name']) ? $class_list[$cid]['class_name'] : ''; } // 年段 $row_pids = explode(',', trim($row['grade_period'], ',')); $row_pname = array(); foreach ($row_pids as $pid) { $row_pname[] = isset($periods[$pid]) ? $periods[$pid] : ''; } $row['class_name'] = implode(',', $row_cname); $row['period_name'] = implode(',', $row_pname); $row['language'] = isset($langs[$row['lang']]) ? $langs[$row['lang']] : ''; $row['type_name'] = isset($types[$row['interview_type']]['type_name']) ? $types[$row['interview_type']]['type_name'] : ''; $row['addtime'] = date('Y-m-d H:i', $row['addtime']); $row['cpuser'] = isset($cpusers[$row['admin_id']]['realname']) ? $cpusers[$row['admin_id']]['realname'] : ''; $list_interview[] = $row; } $priv = array('delete_question' => $this->check_power('question_delete', FALSE), 'delete_interview_question' => $this->check_power('invterview_question_delete', FALSE)); $data['group_id'] = $group_id; $data['list_ques'] = $list_ques; $data['list_interview'] = $list_interview; $data['priv'] = $priv; $data['has_edit_power'] = QuestionModel::check_question_power($group['group_name'], 'w', false); $data['has_interview_question_manage'] = $this->check_power('interview_question_manage', false); // 模版 $this->load->view('relate_group/group', $data); }
/** * @description 管理员操作日志列表 * @author * @final * @param int $admin_id 管理员id * @param date $begin_time 开始时间 * @param date $end_time 结束时间 */ public function index() { if (!$this->check_power('admin_log_list')) { return; } $cpusers = CpUserModel::get_cpuser_list(); // 查询条件 $where = array(); $param = array(); $search = array(); if ($search['admin_id'] = intval($this->input->get('admin_id'))) { $where[] = "admin_id='{$search['admin_id']}'"; $param[] = "admin_id={$search['admin_id']}"; } // 操作时间 $begin_time = $this->input->get('begin_time'); $end_time = $this->input->get('end_time'); if ($btime = (int) strtotime($begin_time)) { $search['begin_time'] = $begin_time; $where[] = "log_time >= {$btime}"; $param[] = "begin_time={$begin_time}"; } if ($etime = (int) strtotime($end_time)) { $etime += 86400; $search['end_time'] = $end_time; $where[] = "log_time < {$etime}"; $param[] = "end_time={$end_time}"; } $where = $where ? implode(' AND ', $where) : ' 1 '; /* * 统计当前数据条数 */ $sql = "SELECT COUNT(id) nums FROM {pre}admin_log WHERE {$where}"; $res = $this->db->query($sql); $row = $res->row_array(); $total = $row['nums']; /* * 分页读取数据列表,并处理相关数据 */ $size = 15; $page = isset($_GET['page']) && intval($_GET['page']) > 1 ? intval($_GET['page']) : 1; $offset = ($page - 1) * $size; $list = array(); if ($total) { $sql = "SELECT *\n FROM {pre}admin_log \n WHERE {$where} ORDER BY id DESC LIMIT {$offset},{$size}"; $res = $this->db->query($sql); foreach ($res->result_array() as $row) { $row['admin_user'] = isset($cpusers[$row['admin_id']]['admin_user']) ? $cpusers[$row['admin_id']]['admin_user'] : ''; $row['log_time'] = date('Y-m-d H:i:s', $row['log_time']); $list[] = $row; } } $data['list'] = $list; // 分页 $purl = site_url('admin/admin_log/index') . ($param ? '?' . implode('&', $param) : ''); $data['pagination'] = multipage($total, $size, $page, $purl); $data['cpusers'] = $cpusers; $data['search'] = $search; // 模版 $this->load->view('admin_log/index', $data); }