Esempio n. 1
0
 function find_file_links($question, $courseid)
 {
     $urls = array();
     /// Question image
     if ($question->image != '') {
         if (substr(strtolower($question->image), 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->image, $matches)) {
                 if ($cleanedurl = question_url_check($urls[$matches[2]])) {
                     $urls[$cleanedurl] = null;
                 }
             }
         } else {
             if ($question->image != '') {
                 if ($cleanedurl = question_url_check($question->image)) {
                     $urls[$cleanedurl] = null;
                     //will be set later
                 }
             }
         }
     }
     /// Questiontext and general feedback.
     $urls += question_find_file_links_from_html($question->questiontext, $courseid);
     $urls += question_find_file_links_from_html($question->generalfeedback, $courseid);
     /// Answers, if this question uses them.
     if (isset($question->options->answers)) {
         foreach ($question->options->answers as $answerkey => $answer) {
             /// URLs in the answers themselves, if appropriate.
             if ($this->has_html_answers()) {
                 $urls += question_find_file_links_from_html($answer->answer, $courseid);
             }
             /// URLs in the answer feedback.
             $urls += question_find_file_links_from_html($answer->feedback, $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)));
     }
     return $urls;
 }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
 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;
 }