/** * Start the controller. */ public function start() { global $template; if ($this->dataSubmitted()) { $this->validateInput(); } try { $model = new QuizModel($this->getLanguage()); } catch (QuizSourceParseException $e) { message_die(GENERAL_ERROR, "An internal error occured while parsing the quiz file: " . $e->getMessage() . "<br>\n" . "Please contact an administrator."); } catch (QuizIllegalLanguageException $e) { message_die(GENERAL_ERROR, "Illegal language specified: " . htmlspecialchars($this->getLanguage())); } $this->model = $model; if ($this->dataSubmitted()) { $this->validateInput2(); $this->selectItems(explode(',', $_POST['questions'])); } else { $model->selectRandomItems(QuizModel::NUM_ITEMS); } if ($model->done()) { $this->validateRedirectionInput(); $model->saveUserSetting(); $this->completed(); } else { $this->view = new QuizView($model, $template, !$this->dataSubmitted()); } }
/** * ������ �� ���� ������ ������ * @return $this */ public function find() { $this->_model = QuizModel::find($this->_quizId); $this->_question = $this->_model->question(); $answers = $this->_model->answers()->get(); // �������� ����� ���������� ������� $this->_totalResponses = $this->_model->total_responses; foreach ($answers as $a) { $this->_answers[$a->id]['title'] = $a->title(); $this->_answers[$a->id]['count'] = $a->responses_count; $this->_answers[$a->id]['percent'] = $this->getPercent($a->responses_count); } return $this; }
public function anyIndex() { // todo: CORRECT $item = \QuizModel::find(1); $this->layout->content = View::make('back/quiz/list')->with('item', $item); }
/** * A handler of each state. * @param int state code */ public function state($state) { eval(USER); $cm = new ContestModel(); $contest = $cm->getCurrentContest(); $contest = $contest[0]; $qm = new QuizModel(); $this->assign('contestname', $contest['name']); $this->assign('contest', $contest); $team = DBModel::getTeamDetail(DBModel::getTeamByUser(session('userid'))); $states = DBModel::selectDB('cernet_statepage'); $this->assign('statepage', $states[$state - 1]['html']); switch ($state) { case 1: // dump($qm); $this->assign('total', $qm->getTotalOnce()); $this->assign('pass', $qm->getPass()); break; case 2: $conf = array(); $conf['user_id'] = session('userid'); $conf['statecode'] = 0; $model = D('cernet_teammate'); $invitations = $model->where($conf)->select(); $list = array(); foreach ($invitations as $invitation) { array_push($list, DBModel::getFullInvitation($invitation)); } $this->assign('list', $list); $this->assign('invitation', json_encode($invitations)); case 3: // invitation $conf = array(); $conf['user_id'] = session('userid'); $conf['statecode'] = 0; $model = D('cernet_teammate'); $invitations = $model->where($conf)->select(); $teamsize = $cm->getTeamSize(); $list = array(); foreach ($invitations as $invitation) { array_push($list, DBModel::getFullInvitation($invitation)); } $this->assign('list', $list); $this->assign('invitation', json_encode($invitations)); // inteam $this->assign('inteam', DBModel::inteam(session('userid')) ? 1 : ''); // get the team $this->assign('teamname', $team['team']['name']); $this->assign('leadername', getNameById('cernet_user', $team['team']['leader'])); $this->assign('isleader', DBModel::isLeader(session('userid'))); $this->assign('teamsize', $teamsize); $contest = $cm->getCurrentContest(); $contest = $contest[0]; $model = D('cernet_user'); $team_id = DBModel::getTeamByUser(session('userid')); $map['cernet_teammate.statecode'] = array(array('neq', 1), array('exp', 'is NULL'), 'OR'); $map['cernet_teammate.team_id'] = array(array('neq', $team_id), array('exp', 'is NULL'), 'OR'); $map['cernet_user.statecode'] = array(array('gt', 1), array('lt', 4)); // $map['cernet_user.statecode'] = 3; $userlist = $model->join('LEFT JOIN cernet_teammate ON cernet_user.id = cernet_teammate.user_id')->where($map)->field('cernet_teammate.statecode,id,name')->select(); $model = D('cernet_teammate'); unset($map['cernet_teammate.statecode']); $map['cernet_teammate.team_id'] = $team_id; $map['cernet_user.id'] = array('NEQ', session('userid')); $candidate = $model->join('LEFT JOIN cernet_user ON cernet_user.id = cernet_teammate.user_id')->field('cernet_teammate.statecode,id,name')->where($map)->select(); // dump($map); // dump($candidate); // die(); $team = DBModel::getTeamDetail($team_id); $this->assign('banner', $cm->getBanner()); $this->assign('team', $team); $this->assign('userlist', json_encode($userlist)); $this->assign('candidate', json_encode($candidate)); $this->assign('teamsize', $cm->getTeamSize()); $this->assign('contest', $contest); $this->assign("less", "buildteam" . ".less"); break; case 4: $this->assign('team', $team); $this->assign('mates', $team['teammate']); break; case 5: $team_id = DBModel::getTeamByUser(session('userid')); $teamdetail = DBModel::getTeamDetail($team_id)['team']; $post['post_time'] = $teamdetail['post_time']; $post['post_company'] = $teamdetail['post_company']; $post['post_id'] = $teamdetail['post_id']; $post['post_status'] = $teamdetail['post_status']; $this->assign('post', $post); $this->assign('team', $team['team']); break; case 6: break; case 8: $this->assign('prize', $team['team']['prize']); break; case 7: $this->assign('team', $team); $this->assign('mates', $team['teammate']); break; } }
public function upload_quiz_() { eval(ADMIN); try { $upload = uploadExcel(); // dump($upload); if (is_string($upload)) { throw new Exception($upload); } #var_dump($upload); $data["filepath"] = "/" . $upload[0]["savepath"] . $upload[0]["savename"]; $model = D("cernet_quiz_meta"); $model->where(array("id" => 1))->save($data); if ($result != 0 && $result == false) { throw new Exception("请检查数据库连接是否正确。"); } $qm = new QuizModel(); $qm->readQuizFromExcelNSave(); $this->success(Success("upload"), "__URL__/manage_quiz"); } catch (Exception $e) { #$this->error(Error("upload"), $e->getMessage()); throw_exception($e->getMessage()); } }