private function createAction() { if (!current_user_can('wpProQuiz_add_quiz')) { wp_die(__('You do not have sufficient permissions to access this page.')); } $this->view = new WpProQuiz_View_QuizEdit(); $this->view->header = __('Create quiz', 'wp-pro-quiz'); $forms = null; $prerequisiteQuizList = array(); $m = new WpProQuiz_Model_QuizMapper(); $templateMapper = new WpProQuiz_Model_TemplateMapper(); if (isset($this->_post['submit'])) { if (isset($this->_post['resultGradeEnabled'])) { $this->_post['result_text'] = $this->filterResultTextGrade($this->_post); } $quiz = new WpProQuiz_Model_Quiz($this->_post); $quizMapper = new WpProQuiz_Model_QuizMapper(); if ($this->checkValidit($this->_post)) { WpProQuiz_View_View::admin_notices(__('Create quiz', 'wp-pro-quiz'), 'info'); $quizMapper->save($quiz); $id = $quizMapper->getInsertId(); $prerequisiteMapper = new WpProQuiz_Model_PrerequisiteMapper(); if ($quiz->isPrerequisite() && !empty($this->_post['prerequisiteList'])) { $prerequisiteMapper->save($id, $this->_post['prerequisiteList']); $quizMapper->activateStatitic($this->_post['prerequisiteList'], 1440); } if (!$this->formHandler($id, $this->_post)) { $quiz->setFormActivated(false); $quizMapper->save($quiz); } $this->showAction(); return; } else { WpProQuiz_View_View::admin_notices(__('Quiz title or quiz description are not filled', 'wp-pro-quiz')); } } else { if (isset($this->_post['template']) || isset($this->_post['templateLoad'])) { if (isset($this->_post['template'])) { $template = $this->saveTemplate(); } else { $template = $templateMapper->fetchById($this->_post['templateLoadId']); } $data = $template->getData(); if ($data !== null) { $quiz = $data['quiz']; $forms = $data['forms']; $prerequisiteQuizList = $data['prerequisiteQuizList']; } } else { $quiz = new WpProQuiz_Model_Quiz(); } } $this->view->quiz = $quiz; $this->view->prerequisiteQuizList = $prerequisiteQuizList; $this->view->quizList = $m->fetchAllAsArray(array('id', 'name')); $this->view->captchaIsInstalled = class_exists('ReallySimpleCaptcha'); $this->view->forms = $forms; $this->view->templates = $templateMapper->fetchAll(WpProQuiz_Model_Template::TEMPLATE_TYPE_QUIZ, false); $this->view->show(); }