/** * (non-PHPdoc) * @see WPCW_quiz_base::renderForm_toString() */ function renderForm_toString($parentQuiz, $questionNum, $selectedAnswer, $showAsError, $errorToShow = false) { // Process all answers to give them an index. Count must be 1 indexed to avoid disappearing // due to 0 evaluating to false. if ($this->quizItem->question_data_answers) { // Extract answers into raw format. $this->answerListRaw = WPCW_quizzes_decodeAnswers($this->quizItem->question_data_answers); // If the user has requested the answers to be randomized, then use this. This function // with automatically check and handle the randomization and update $this->answerListRaw. $this->processAnswersWithRandomOption(); // Got answers, so break up into a list of answer => value if ($this->answerListRaw) { $this->answerList = array(); $this->answerImageList = array(); foreach ($this->answerListRaw as $idx => $answerItem) { $answerKey = 'ans_' . $idx; // Reversing the answer value to key here.. $this->answerList[trim($answerItem['answer'])] = $answerKey; // Store the image if we have one. if (isset($answerItem['image'])) { $this->answerImageList[$answerKey] = $answerItem['image']; } } } } // end of answer check // Add the hint if there is one if ($this->quizItem->question_answer_hint) { $this->extraQuizHTMLAfter .= sprintf('<div class="wpcw_fe_quiz_q_hint">%s</div>', nl2br(htmlspecialchars($this->quizItem->question_answer_hint))); } // Handover to parent. All multiple choice answers are prefixed with 'ans_'. return parent::renderForm_toString_withClass($parentQuiz, $questionNum, 'ans_' . $selectedAnswer, $showAsError, 'wpcw_fe_quiz_q_multi', $errorToShow); }
/** * Get the associated image for a multi-choice question based on the selected answer. * * @param Object $question The question object. * @param Mixed $answerIdx If specified, the index of the raw answer. * * @return String The answer for the question. */ function fetch_quizzes_getImageForAnswer($question, $answerIdx) { // Multi-choice questions have images, no others do. if ('multi' != $question->question_type) { return false; } // Turn list of answers into array then use 1-indexing to get the image of the result. $answerListRaw = WPCW_quizzes_decodeAnswers($question->question_data_answers); $imageURL = false; // Just double check that the selected answer is valid. // 2013-12-06 - Added <= rather than < count for the final answer to accept the final answer. // Because it's 1-indexed, not 0 indexed. if ($answerIdx >= 0 && $answerIdx <= count($answerListRaw) && isset($answerListRaw[$answerIdx])) { if (isset($answerListRaw[$answerIdx]['image'])) { $imageURL = $answerListRaw[$answerIdx]['image']; } } return $imageURL; }