private function edit() { if (!current_user_can('wpProQuiz_change_settings')) { wp_die(__('You do not have sufficient permissions to access this page.')); } $mapper = new WpProQuiz_Model_GlobalSettingsMapper(); $categoryMapper = new WpProQuiz_Model_CategoryMapper(); $templateMapper = new WpProQuiz_Model_TemplateMapper(); $view = new WpProQuiz_View_GobalSettings(); if (isset($this->_post['submit'])) { $mapper->save(new WpProQuiz_Model_GlobalSettings($this->_post)); WpProQuiz_View_View::admin_notices(__('Settings saved', 'wp-pro-quiz'), 'info'); $toplistDateFormat = $this->_post['toplist_date_format']; if ($toplistDateFormat == 'custom') { $toplistDateFormat = trim($this->_post['toplist_date_format_custom']); } $statisticTimeFormat = $this->_post['statisticTimeFormat']; if (add_option('wpProQuiz_toplistDataFormat', $toplistDateFormat) === false) { update_option('wpProQuiz_toplistDataFormat', $toplistDateFormat); } if (add_option('wpProQuiz_statisticTimeFormat', $statisticTimeFormat, '', 'no') === false) { update_option('wpProQuiz_statisticTimeFormat', $statisticTimeFormat); } //Email //$mapper->saveEmailSettiongs($this->_post['email']); //$mapper->saveUserEmailSettiongs($this->_post['userEmail']); } else { if (isset($this->_post['databaseFix'])) { WpProQuiz_View_View::admin_notices(__('Database repaired', 'wp-pro-quiz'), 'info'); $DbUpgradeHelper = new WpProQuiz_Helper_DbUpgrade(); $DbUpgradeHelper->databaseDelta(); } } $view->settings = $mapper->fetchAll(); $view->isRaw = !preg_match('[raw]', apply_filters('the_content', '[raw]a[/raw]')); $view->category = $categoryMapper->fetchAll(); $view->categoryQuiz = $categoryMapper->fetchAll(WpProQuiz_Model_Category::CATEGORY_TYPE_QUIZ); $view->email = $mapper->getEmailSettings(); $view->userEmail = $mapper->getUserEmailSettings(); $view->templateQuiz = $templateMapper->fetchAll(WpProQuiz_Model_Template::TEMPLATE_TYPE_QUIZ, false); $view->templateQuestion = $templateMapper->fetchAll(WpProQuiz_Model_Template::TEMPLATE_TYPE_QUESTION, false); $view->toplistDataFormat = get_option('wpProQuiz_toplistDataFormat', 'Y/m/d g:i A'); $view->statisticTimeFormat = get_option('wpProQuiz_statisticTimeFormat', 'Y/m/d g:i A'); $view->show(); }
private function addEditQuestion($quizId) { $questionId = isset($_GET['questionId']) ? (int) $_GET['questionId'] : 0; if ($questionId) { if (!current_user_can('wpProQuiz_edit_quiz')) { wp_die(__('You do not have sufficient permissions to access this page.')); } } else { if (!current_user_can('wpProQuiz_add_quiz')) { wp_die(__('You do not have sufficient permissions to access this page.')); } } $quizMapper = new WpProQuiz_Model_QuizMapper(); $questionMapper = new WpProQuiz_Model_QuestionMapper(); $cateoryMapper = new WpProQuiz_Model_CategoryMapper(); $templateMapper = new WpProQuiz_Model_TemplateMapper(); if ($questionId && $questionMapper->existsAndWritable($questionId) == 0) { WpProQuiz_View_View::admin_notices(__('Question not found', 'wp-pro-quiz'), 'error'); return; } $question = new WpProQuiz_Model_Question(); if (isset($this->_post['template']) || isset($this->_post['templateLoad']) && isset($this->_post['templateLoadId'])) { if (isset($this->_post['template'])) { $template = $this->saveTemplate(); } else { $template = $templateMapper->fetchById($this->_post['templateLoadId']); } $data = $template->getData(); if ($data !== null) { /** @var WpProQuiz_Model_Question $question */ $question = $data['question']; $question->setId($questionId); $question->setQuizId($quizId); } } else { if (isset($this->_post['submit'])) { if ($questionId) { WpProQuiz_View_View::admin_notices(__('Question edited', 'wp-pro-quiz'), 'info'); } else { WpProQuiz_View_View::admin_notices(__('Question added', 'wp-pro-quiz'), 'info'); } $question = $questionMapper->save($this->getPostQuestionModel($quizId, $questionId), true); $questionId = $question->getId(); } else { if ($questionId) { $question = $questionMapper->fetch($questionId); } } } $view = new WpProQuiz_View_QuestionEdit(); $view->categories = $cateoryMapper->fetchAll(); $view->quiz = $quizMapper->fetch($quizId); $view->templates = $templateMapper->fetchAll(WpProQuiz_Model_Template::TEMPLATE_TYPE_QUESTION, false); $view->question = $question; $view->answerData = $this->setAnswerObject($question); $view->header = $questionId ? __('Edit question', 'wp-pro-quiz') : __('New question', 'wp-pro-quiz'); if ($view->question->isAnswerPointsActivated()) { $view->question->setPoints(1); } $view->show(); }
/** * @deprecated */ public function createAction() { if (!current_user_can('wpProQuiz_add_quiz')) { wp_die(__('You do not have sufficient permissions to access this page.')); } $quizMapper = new WpProQuiz_Model_QuizMapper(); $cateoryMapper = new WpProQuiz_Model_CategoryMapper(); $templateMapper = new WpProQuiz_Model_TemplateMapper(); // $post = null; // if(isset($this->_post['submit'])) { // $questionMapper = new WpProQuiz_Model_QuestionMapper(); // $post = WpProQuiz_Controller_Request::getPost(); // $post['title'] = isset($post['title']) ? trim($post['title']) : ''; // $post['quizId'] = $this->_quizId; // $clearPost = $this->clearPost($post); // $post['answerData'] = $clearPost['answerData']; // if(empty($post['title'])) { // $count = $questionMapper->count($this->_quizId); // $post['title'] = sprintf(__('Question: %d', 'wp-pro-quiz'), $count+1); // } // if($post['answerType'] === 'assessment_answer') { // $post['answerPointsActivated'] = 1; // } // if(isset($post['answerPointsActivated'])) { // if(isset($post['answerPointsDiffModusActivated'])) { // $post['points'] = $clearPost['maxPoints']; // } else { // $post['points'] = $clearPost['points']; // } // } // $post['categoryId'] = $post['category'] > 0 ? $post['category'] : 0; // $questionMapper->save(new WpProQuiz_Model_Question($post)); // WpProQuiz_View_View::admin_notices(__('Question added', 'wp-pro-quiz'), 'info'); // $this->showAction(); // return; // } $this->view = new WpProQuiz_View_QuestionEdit(); $this->view->question = new WpProQuiz_Model_Question(); $this->view->categories = $cateoryMapper->fetchAll(); $this->view->quiz = $quizMapper->fetch($this->_quizId); $this->view->data = $this->setAnswerObject(); $this->view->templates = $templateMapper->fetchAll(WpProQuiz_Model_Template::TEMPLATE_TYPE_QUESTION, false); $this->view->header = __('New question', 'wp-pro-quiz'); if ($this->view->question->isAnswerPointsActivated()) { $this->view->question->setPoints(1); } $this->view->show(); }
private function addEditQuiz() { $quizId = isset($_GET['quizId']) ? (int) $_GET['quizId'] : 0; if ($quizId) { if (!current_user_can('wpProQuiz_edit_quiz')) { wp_die(__('You do not have sufficient permissions to access this page.')); } } else { if (!current_user_can('wpProQuiz_add_quiz')) { wp_die(__('You do not have sufficient permissions to access this page.')); } } $prerequisiteMapper = new WpProQuiz_Model_PrerequisiteMapper(); $quizMapper = new WpProQuiz_Model_QuizMapper(); $formMapper = new WpProQuiz_Model_FormMapper(); $templateMapper = new WpProQuiz_Model_TemplateMapper(); $cateoryMapper = new WpProQuiz_Model_CategoryMapper(); $quiz = new WpProQuiz_Model_Quiz(); $forms = null; $prerequisiteQuizList = array(); if ($quizId && $quizMapper->exists($quizId) == 0) { WpProQuiz_View_View::admin_notices(__('Quiz not found', 'wp-pro-quiz'), 'error'); return; } if (isset($this->_post['template']) || isset($this->_post['templateLoad']) && isset($this->_post['templateLoadId'])) { if (isset($this->_post['template'])) { $template = $this->saveTemplate(); } else { $template = $templateMapper->fetchById($this->_post['templateLoadId']); } $data = $template->getData(); if ($data !== null) { /** @var WpProQuiz_Model_Quiz $quiz */ $quiz = $data['quiz']; $quiz->setId($quizId); $forms = $data['forms']; $prerequisiteQuizList = $data['prerequisiteQuizList']; } } else { if (isset($this->_post['submit'])) { if (isset($this->_post['resultGradeEnabled'])) { $this->_post['result_text'] = $this->filterResultTextGrade($this->_post); } $this->_post['categoryId'] = $this->_post['category'] > 0 ? $this->_post['category'] : 0; $this->_post['adminEmail'] = new WpProQuiz_Model_Email($this->_post['adminEmail']); $this->_post['userEmail'] = new WpProQuiz_Model_Email($this->_post['userEmail']); $quiz = new WpProQuiz_Model_Quiz($this->_post); $quiz->setId($quizId); if (isset($this->_post['plugin'])) { $quiz->getPluginContainer()->set($this->_post['plugin']); } if ($this->checkValidit($this->_post)) { if ($quizId) { WpProQuiz_View_View::admin_notices(__('Quiz edited', 'wp-pro-quiz'), 'info'); } else { WpProQuiz_View_View::admin_notices(__('quiz created', 'wp-pro-quiz'), 'info'); } $quizMapper->save($quiz); $quizId = $quiz->getId(); $prerequisiteMapper->delete($quizId); if ($quiz->isPrerequisite() && !empty($this->_post['prerequisiteList'])) { $prerequisiteMapper->save($quizId, $this->_post['prerequisiteList']); $quizMapper->activateStatitic($this->_post['prerequisiteList'], 1440); } if (!$this->formHandler($quiz->getId(), $this->_post)) { $quiz->setFormActivated(false); $quizMapper->save($quiz); } $forms = $formMapper->fetch($quizId); $prerequisiteQuizList = $prerequisiteMapper->fetchQuizIds($quizId); } else { WpProQuiz_View_View::admin_notices(__('Quiz title or quiz description are not filled', 'wp-pro-quiz')); } } else { if ($quizId) { $quiz = $quizMapper->fetch($quizId); $forms = $formMapper->fetch($quizId); $prerequisiteQuizList = $prerequisiteMapper->fetchQuizIds($quizId); } } } $view = new WpProQuiz_View_QuizEdit(); $view->quiz = $quiz; $view->forms = $forms; $view->prerequisiteQuizList = $prerequisiteQuizList; $view->templates = $templateMapper->fetchAll(WpProQuiz_Model_Template::TEMPLATE_TYPE_QUIZ, false); $view->quizList = $quizMapper->fetchAllAsArray(array('id', 'name'), $quizId ? array($quizId) : array()); $view->captchaIsInstalled = class_exists('ReallySimpleCaptcha'); $view->categories = $cateoryMapper->fetchAll(WpProQuiz_Model_Category::CATEGORY_TYPE_QUIZ); $view->header = $quizId ? __('Edit quiz', 'wp-pro-quiz') : __('Create quiz', 'wp-pro-quiz'); $view->show(); }
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(); }