public function clearPost($post) { if ($post['answerType'] == 'cloze_answer' && isset($post['answerData']['cloze'])) { preg_match_all('#\\{(.*?)(?:\\|(\\d+))?(?:[\\s]+)?\\}#im', $post['answerData']['cloze']['answer'], $matches); $points = 0; $maxPoints = 0; foreach ($matches[2] as $match) { if (empty($match)) { $match = 1; } $points += $match; $maxPoints = max($maxPoints, $match); } return array('points' => $points, 'maxPoints' => $maxPoints, 'answerData' => array(new WpProQuiz_Model_AnswerTypes($post['answerData']['cloze']))); } if ($post['answerType'] == 'assessment_answer' && isset($post['answerData']['assessment'])) { preg_match_all('#\\{(.*?)\\}#im', $post['answerData']['assessment']['answer'], $matches); $points = 0; $maxPoints = 0; foreach ($matches[1] as $match) { preg_match_all('#\\[([^\\|\\]]+)(?:\\|(\\d+))?\\]#im', $match, $ms); $points += count($ms[1]); $maxPoints = max($maxPoints, count($ms[1])); } return array('points' => $points, 'maxPoints' => $maxPoints, 'answerData' => array(new WpProQuiz_Model_AnswerTypes($post['answerData']['assessment']))); } unset($post['answerData']['cloze']); unset($post['answerData']['assessment']); if (isset($post['answerData']['none'])) { unset($post['answerData']['none']); } $answerData = array(); $points = 0; $maxPoints = 0; foreach ($post['answerData'] as $k => $v) { if (trim($v['answer']) == '') { if ($post['answerType'] != 'matrix_sort_answer') { continue; } else { if (trim($v['sort_string']) == '') { continue; } } } $answerType = new WpProQuiz_Model_AnswerTypes($v); $points += $answerType->getPoints(); $maxPoints = max($maxPoints, $answerType->getPoints()); $answerData[] = $answerType; } return array('points' => $points, 'maxPoints' => $maxPoints, 'answerData' => $answerData); }