if (!$ques->exclude_on_final_screen) { $result .= watupro_cat_header($exam, $qct, $ques, 'submit'); if (!in_array($ques->cat_id, $question_catids)) { $question_catids[] = $ques->cat_id; } } $qct++; $question_content = $ques->question; // fill the gaps need to replace gaps if ($ques->answer_type == 'gaps') { $question_content = preg_replace("/{{{([^}}}])*}}}/", "_____", $question_content); } $ansArr = is_array(@$_POST["answer-" . $ques->ID]) ? $_POST["answer-" . $ques->ID] : array(); // points and correct calculation list($points, $correct) = WTPQuestion::calc_answer($ques, $ansArr, $ques->q_answers, $user_grade_ids); $max_points += WTPQuestion::max_points($ques); // handle sorting personalities if ($exam->is_personality_quiz and $ques->answer_type == 'sort' and watupro_intel()) { WatuPROIQuestion::sort_question_personality($ques, $ansArr, $user_grade_ids); } // discard points? if ($points and !$correct and $ques->reward_only_correct) { $points = 0; } list($answer_text, $current_text, $unresolved_text) = $_question->process($_watu, $qct, $question_content, $ques, $ansArr, $correct, $points); $unresolved_questions .= str_replace('[[watupro-resolvedclass]]', '', $unresolved_text); // replace the resolved class if ($correct) { $current_text = str_replace('[[watupro-resolvedclass]]', 'watupro-resolved', $current_text); } else { $current_text = str_replace('[[watupro-resolvedclass]]', 'watupro-unresolved', $current_text);