'; echo Security::remove_XSS($answerHTML, COURSEMANAGERLOWSECURITY); echo ''; } else { echo ''; echo Security::remove_XSS($answerHTML, COURSEMANAGERLOWSECURITY); echo ''; if (!api_is_allowed_to_edit(null, true) && $feedbackType != EXERCISE_FEEDBACK_TYPE_EXAM) { echo ''; $comm = Event::get_comments($id, $questionId); echo ''; } echo ''; } } /** * Shows the answer to a calculated question, as HTML * @param Exercise $exercise * @param string Answer text * @param int Exercise ID * @param int Question ID * @return void */ public static function display_calculated_answer( $exercise, $feedback_type, $answer, $id, $questionId, $results_disabled, $showTotalScoreAndUserChoices, $expectedChoice = '', $choice = '', $status = '' ) { if ($exercise->showExpectedChoice()) { if (empty($id)) { echo ''. Security::remove_XSS($answer).''; echo ''. Security::remove_XSS($choice).''; echo ''. Security::remove_XSS($expectedChoice).''; echo ''. Security::remove_XSS($status).''; echo ''; } else { echo ''; echo Security::remove_XSS($answer); echo ''; echo Security::remove_XSS($choice); echo ''; echo Security::remove_XSS($expectedChoice); echo ''; echo Security::remove_XSS($status); echo ''; if (!api_is_allowed_to_edit(null, true) && $feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { echo ''; $comm = Event::get_comments($id, $questionId); echo ''; } echo ''; } } else { if (empty($id)) { echo ''.Security::remove_XSS($answer).''; } else { echo ''; echo Security::remove_XSS($answer); if (!api_is_allowed_to_edit(null, true) && $feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { echo ''; $comm = Event::get_comments($id, $questionId); echo ''; } echo ''; } } } /** * Shows the answer to a free-answer question, as HTML * @param string Answer text * @param int Exercise ID * @param int Question ID * @return void */ public static function display_free_answer( $feedback_type, $answer, $exe_id, $questionId, $questionScore = null, $results_disabled = 0 ) { $comments = Event::get_comments($exe_id, $questionId); if (!empty($answer)) { echo ''; echo Security::remove_XSS($answer); echo ''; } if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { if ($questionScore > 0 || !empty($comments)) { } else { echo ''; echo Display::tag('td', ExerciseLib::getNotCorrectedYetText(), []); echo ''; } } } /** * @param $feedback_type * @param $answer * @param $id * @param $questionId * @param null $fileUrl * @param int $results_disabled * @param int $questionScore */ public static function display_oral_expression_answer( $feedback_type, $answer, $id, $questionId, $fileUrl = null, $results_disabled = 0, $questionScore = 0 ) { if (isset($fileUrl)) { echo ' '; } if (empty($id)) { echo ''; echo Display::tag('td', Security::remove_XSS($answer), ['width'=>'55%']); echo ''; if (!$questionScore && $feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { echo ''; echo Display::tag('td', ExerciseLib::getNotCorrectedYetText(), ['width'=>'45%']); echo ''; } else { echo ' '; } } else { echo ''; echo ''; if (!empty($answer)) { echo Security::remove_XSS($answer); } echo ''; if (!api_is_allowed_to_edit(null, true) && $feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { echo ''; $comm = Event::get_comments($id, $questionId); echo ''; } echo ''; } } /** * Displays the answer to a hotspot question * @param int $feedback_type * @param int $answerId * @param string $answer * @param string $studentChoice * @param string $answerComment * @param int $resultsDisabled * @param int $orderColor * @param bool $showTotalScoreAndUserChoices */ public static function display_hotspot_answer( $feedback_type, $answerId, $answer, $studentChoice, $answerComment, $resultsDisabled, $orderColor, $showTotalScoreAndUserChoices ) { $hide_expected_answer = false; if ($feedback_type == 0 && $resultsDisabled == 2) { $hide_expected_answer = true; } if ($resultsDisabled == RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT) { $hide_expected_answer = true; if ($showTotalScoreAndUserChoices) { $hide_expected_answer = false; } } $hotspot_colors = [ "", // $i starts from 1 on next loop (ugly fix) "#4271B5", "#FE8E16", "#45C7F0", "#BCD631", "#D63173", "#D7D7D7", "#90AFDD", "#AF8640", "#4F9242", "#F4EB24", "#ED2024", "#3B3B3B", "#F7BDE2" ]; echo ''; echo ''; echo ''; echo ''; if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { echo ''; } else { echo ''; } echo ''; } /** * Display the answers to a multiple choice question * @param Exercise $exercise * @param int $feedback_type Feedback type * @param int $answerType Answer type * @param int $studentChoice Student choice * @param string $answer Textual answer * @param string $answerComment Comment on answer * @param string $answerCorrect Correct answer comment * @param int $id Exercise ID * @param int $questionId Question ID * @param boolean $ans Whether to show the answer comment or not * @param bool $resultsDisabled * @param bool $showTotalScoreAndUserChoices * @param bool $export * @return void */ public static function display_unique_or_multiple_answer( $exercise, $feedback_type, $answerType, $studentChoice, $answer, $answerComment, $answerCorrect, $id, $questionId, $ans, $resultsDisabled, $showTotalScoreAndUserChoices, $export = false ) { if ($export) { $answer = strip_tags_blacklist($answer, ['title', 'head']); // Fix answers that contains this tags $tags = [ '', '', '', '' ]; $answer = str_replace($tags, '', $answer); } $hide_expected_answer = false; if ($feedback_type == 0 && ($resultsDisabled == RESULT_DISABLE_SHOW_SCORE_ONLY)) { $hide_expected_answer = true; } if ($resultsDisabled == RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT) { $hide_expected_answer = true; if ($showTotalScoreAndUserChoices) { $hide_expected_answer = false; } } $icon = in_array($answerType, [UNIQUE_ANSWER, UNIQUE_ANSWER_NO_OPTION]) ? 'radio' : 'checkbox'; $icon .= $studentChoice ? '_on' : '_off'; $icon .= '.png'; $iconAnswer = in_array($answerType, [UNIQUE_ANSWER, UNIQUE_ANSWER_NO_OPTION]) ? 'radio' : 'checkbox'; $iconAnswer .= $answerCorrect ? '_on' : '_off'; $iconAnswer .= '.png'; echo ''; echo ''; if ($exercise->showExpectedChoice()) { $status = Display::label(get_lang('Incorrect'), 'danger'); if ($studentChoice) { if ($answerCorrect) { $status = Display::label(get_lang('Correct'), 'success'); } } echo ''; } if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { echo ''; if ($ans == 1) { $comm = Event::get_comments($id, $questionId); } } else { echo ''; } echo ''; } /** * Display the answers to a multiple choice question * * @param Exercise $exercise * @param integer Answer type * @param integer Student choice * @param string Textual answer * @param string Comment on answer * @param string Correct answer comment * @param integer Exercise ID * @param integer Question ID * @param boolean Whether to show the answer comment or not * @return void */ public static function display_multiple_answer_true_false( $exercise, $feedback_type, $answerType, $studentChoice, $answer, $answerComment, $answerCorrect, $id, $questionId, $ans, $resultsDisabled, $showTotalScoreAndUserChoices ) { $hide_expected_answer = false; if ($feedback_type == 0 && ($resultsDisabled == RESULT_DISABLE_SHOW_SCORE_ONLY)) { $hide_expected_answer = true; } if ($resultsDisabled == RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT) { $hide_expected_answer = true; if ($showTotalScoreAndUserChoices) { $hide_expected_answer = false; } } echo ''; if ($exercise->showExpectedChoice()) { $status = Display::label(get_lang('Incorrect'), 'danger'); if (isset($new_options[$studentChoice])) { if ($studentChoice == $answerCorrect) { $status = Display::label(get_lang('Correct'), 'success'); } } echo ''; } if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { echo ''; if ($ans == 1) { $comm = Event::get_comments($id, $questionId); } } else { echo ''; } echo ''; } /** * Display the answers to a multiple choice question * * @param Exercise $exercise * @param integer Answer type * @param integer Student choice * @param string Textual answer * @param string Comment on answer * @param string Correct answer comment * @param integer Exercise ID * @param integer Question ID * @param boolean Whether to show the answer comment or not * @return void */ public static function display_multiple_answer_combination_true_false( $exercise, $feedback_type, $answerType, $studentChoice, $answer, $answerComment, $answerCorrect, $id, $questionId, $ans, $resultsDisabled, $showTotalScoreAndUserChoices ) { $hide_expected_answer = false; if ($feedback_type == 0 && ($resultsDisabled == RESULT_DISABLE_SHOW_SCORE_ONLY)) { $hide_expected_answer = true; } if ($resultsDisabled == RESULT_DISABLE_SHOW_SCORE_ATTEMPT_SHOW_ANSWERS_LAST_ATTEMPT) { $hide_expected_answer = true; if ($showTotalScoreAndUserChoices) { $hide_expected_answer = false; } } echo ''; echo ''; if ($exercise->showExpectedChoice()) { $status = ''; if (isset($studentChoice)) { $status = Display::label(get_lang('Incorrect'), 'danger'); if ($studentChoice == $answerCorrect) { $status = Display::label(get_lang('Correct'), 'success'); } } echo ''; } if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { echo ''; if ($ans == 1) { $comm = Event::get_comments($id, $questionId); } } else { echo ''; } echo ''; } /** * @param $feedback_type * @param $exe_id * @param $questionId * @param null $questionScore * @param int $results_disabled */ public static function displayAnnotationAnswer( $feedback_type, $exe_id, $questionId, $questionScore = null, $results_disabled = 0 ) { $comments = Event::get_comments($exe_id, $questionId); if ($feedback_type != EXERCISE_FEEDBACK_TYPE_EXAM) { if ($questionScore <= 0 && empty($comments)) { echo '
'.ExerciseLib::getNotCorrectedYetText(); } } } }
'; echo ''; echo ''; echo "$answerId - $answer"; echo ''; if (!$hide_expected_answer) { $status = Display::label(get_lang('Incorrect'), 'danger'); if ($studentChoice) { $status = Display::label(get_lang('Correct'), 'success'); } echo $status; } echo ''; if ($studentChoice) { echo ''.nl2br($answerComment).''; } echo ' 
'; echo Display::return_icon($icon, null, null, ICON_SIZE_TINY); echo ''; if (!$hide_expected_answer) { echo Display::return_icon($iconAnswer, null, null, ICON_SIZE_TINY); } else { echo "-"; } echo ''; echo $answer; echo ''; echo $status; echo ''; if ($studentChoice) { $color = 'black'; if ($answerCorrect) { $color = 'green'; } if ($hide_expected_answer) { $color = ''; } echo ''.strip_tags($answerComment).''; } echo ' 
'; $course_id = api_get_course_int_id(); $new_options = Question::readQuestionOption($questionId, $course_id); // Your choice if (isset($new_options[$studentChoice])) { echo get_lang($new_options[$studentChoice]['name']); } else { echo '-'; } echo ''; // Expected choice if (!$hide_expected_answer) { if (isset($new_options[$answerCorrect])) { echo get_lang($new_options[$answerCorrect]['name']); } else { echo '-'; } } else { echo '-'; } echo ''; echo $answer; echo ''; echo $status; echo ''; $color = "black"; if (isset($new_options[$studentChoice])) { if ($studentChoice == $answerCorrect) { $color = "green"; } if ($hide_expected_answer) { $color = ''; } echo ''.nl2br($answerComment).''; } echo ' 
'; // Your choice $question = new MultipleAnswerCombinationTrueFalse(); if (isset($question->options[$studentChoice])) { echo $question->options[$studentChoice]; } else { echo $question->options[2]; } echo ''; // Expected choice if (!$hide_expected_answer) { if (isset($question->options[$answerCorrect])) { echo $question->options[$answerCorrect]; } else { echo $question->options[2]; } } else { echo '-'; } echo ''; // my answer echo $answer; echo ''; echo $status; echo ''; //@todo replace this harcoded value if ($studentChoice) { $color = "black"; if ($studentChoice == $answerCorrect) { $color = "green"; } if ($hide_expected_answer) { $color = ''; } echo ''.nl2br($answerComment).''; } echo '