function find_file_links($question, $courseid) { // find links in the question_match_sub table. $urls = array(); if (isset($question->options->subquestions)) { foreach ($question->options->subquestions as $subquestion) { $urls += question_find_file_links_from_html($subquestion->questiontext, $courseid); } //set all the values of the array to the question object if ($urls) { $urls = array_combine(array_keys($urls), array_fill(0, count($urls), array($question->id))); } } $urls = array_merge_recursive($urls, parent::find_file_links($question, $courseid)); return $urls; }
function find_file_links($question, $courseid) { $urls = array(); // find links in the answers table. $urls += question_find_file_links_from_html($question->options->correctfeedback, $courseid); $urls += question_find_file_links_from_html($question->options->partiallycorrectfeedback, $courseid); $urls += question_find_file_links_from_html($question->options->incorrectfeedback, $courseid); foreach ($question->options->answers as $answer) { $urls += question_find_file_links_from_html($answer->answer, $courseid); } //set all the values of the array to the question id if ($urls) { $urls = array_combine(array_keys($urls), array_fill(0, count($urls), array($question->id))); } $urls = array_merge_recursive($urls, parent::find_file_links($question, $courseid)); return $urls; }
function find_file_links($question, $courseid) { $urls = array(); if ($question->options->backgroundmedia->media != '') { if (substr(strtolower($question->options->backgroundmedia->media), 0, 7) == 'http://') { $matches = array(); //support for older questions where we have a complete url in image field if (preg_match('!^' . question_file_links_base_url($courseid) . '(.*)!i', $question->options->backgroundmedia->media, $matches)) { if ($cleanedurl = question_url_check($urls[$matches[2]])) { $urls[$cleanedurl] = null; } } } else { if ($question->options->backgroundmedia->media != '') { if ($cleanedurl = question_url_check($question->options->backgroundmedia->media)) { $urls[$cleanedurl] = null; //will be set later } } } } foreach ($question->options->media as $media) { if ($media->media != '') { if (substr(strtolower($media->media), 0, 7) == 'http://') { $matches = array(); if (preg_match('!^' . question_file_links_base_url($courseid) . '(.*)!i', $media->media, $matches)) { if ($cleanedurl = question_url_check($urls[$matches[2]])) { $urls[$cleanedurl] = null; } } } else { if ($media->media != '') { if ($cleanedurl = question_url_check($media->media)) { $urls[$cleanedurl] = null; //will be set later } } } } $urls += question_find_file_links_from_html($media->questiontext, $courseid); } $urls += question_find_file_links_from_html($question->options->feedbackok, $courseid); $urls += question_find_file_links_from_html($question->options->feedbackmissed, $courseid); //set all the values of the array to the question object if ($urls) { $urls = array_combine(array_keys($urls), array_fill(0, count($urls), array($question->id))); } $urls = array_merge_recursive($urls, parent::find_file_links($question, $courseid)); return $urls; }