コード例 #1
0
 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);
 }