/** * Display embedded url file. * @param object $url * @param object $cm * @param object $course * @param stored_file $file main file * @return does not return */ function mediaelementjs_display_embed($url, $cm, $course) { global $CFG, $PAGE, $OUTPUT; $mimetype = resourcelib_guess_url_mimetype($url->externalurl); $cloud_storage_mimetype = mediaelementjs_guess_cloud_storage_mimetype($url->externalurl); if ($cloud_storage_mimetype) { $mimetype = $cloud_storage_mimetype; } $fullurl = mediaelementjs_get_full_url($url, $cm, $course); $title = $url->name; $link = html_writer::tag('a', $fullurl, array('href' => str_replace('&', '&', $fullurl))); $clicktoopen = get_string('clicktoopen', 'mediaelementjs', $link); $extension = resourcelib_get_extension($url->externalurl); if (in_array($mimetype, array('image/gif', 'image/jpeg', 'image/png'))) { // It's an image $code = resourcelib_embed_image($fullurl, $title); } else { if ($mimetype == 'audio/mp3' || $mimetype == 'audio/x-pn-realaudio-plugin') { // MP3 audio file $code = GcrFileLib::getAudioEmbedHtml($fullurl, $mimetype); } else { if ($mimetype == 'application/x-shockwave-flash') { // Flash file $code = resourcelib_embed_flash($fullurl, $title, $clicktoopen); } else { if ($mimetype == 'video/x-ms' || $mimetype == 'video/mpeg' || $mimetype == 'video/quicktime' || $mimetype == 'video/webm' || $mimetype == 'video/ogv' || $mimetype == 'video/ogg' || $mimetype == 'video/mp4') { $code = GcrFileLib::getVideoEmbedHtml($fullurl, '100%', '100%', $mimetype); } else { // anything else - just try object tag enlarged as much as possible $code = resourcelib_embed_general($fullurl, $title, $clicktoopen, $mimetype); } } } } mediaelementjs_print_header($url, $cm, $course); mediaelementjs_print_heading($url, $cm, $course); echo $code; mediaelementjs_print_intro($url, $cm, $course); echo $OUTPUT->footer(); die; }
$cm = get_coursemodule_from_instance('mediaelementjs', $url->id, $url->course, false, MUST_EXIST); } else { $cm = get_coursemodule_from_id('mediaelementjs', $id, 0, false, MUST_EXIST); $url = $DB->get_record('mediaelementjs', array('id' => $cm->instance), '*', MUST_EXIST); } $course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST); require_course_login($course, true, $cm); $context = get_context_instance(CONTEXT_MODULE, $cm->id); require_capability('mod/mediaelementjs:view', $context); add_to_log($course->id, 'mediaelementjs', 'view', 'view.php?id=' . $cm->id, $url->id, $cm->id); // Update 'viewed' state if required by completion system $completion = new completion_info($course); $completion->set_module_viewed($cm); $PAGE->set_url('/mod/mediaelementjs/view.php', array('id' => $cm->id)); if ($redirect) { // coming from course page or url index page, // the redirection is needed for completion tracking and logging $fullurl = mediaelementjs_get_full_url($url, $cm, $course); redirect(str_replace('&', '&', $fullurl)); } switch (mediaelementjs_get_final_display_type($url)) { case RESOURCELIB_DISPLAY_EMBED: mediaelementjs_display_embed($url, $cm, $course); break; case RESOURCELIB_DISPLAY_FRAME: mediaelementjs_display_frame($url, $cm, $course); break; default: mediaelementjs_print_workaround($url, $cm, $course); break; }