/** * creates a media tag to use for choice media * * @param string $file the filename * @param string $courseid the course id * @param string $alt to specify the alt tag * @return string either an image tag, or html for an embedded object */ function get_media_tag($file, $courseid = 0, $alt = 'media file', $width = 0, $height = 0) { global $CFG; // if it's a moodle library file, it will be served through file.php if (substr(strtolower($file), 0, 7) == 'http://') { $media = $file; } else { require_once $CFG->libdir . '/filelib.php'; $media = get_file_url("{$courseid}/{$file}"); } $ismultimedia = false; if (!($isimage = is_image_by_extension($file))) { $ismultimedia = is_multimedia_by_extension($file); } // if there is no known width and height, try to get one if ($width == 0) { if ($isimage || is_sizable_multimedia($file)) { } } // create either an image link or a generic link. // if the moodle multimedia filter is turned on, it'll catch multimedia content in the generic link if (is_image_by_extension($file)) { return "<img src=\"{$media}\" alt=\"{$alt}\" width=\"{$width}\" height=\"{$height}\" />"; } else { require_once "{$CFG->dirroot}/mod/quiz/format/qti/custommediafilter.php"; return custom_mediaplugin_filter('<a href="' . $media . '"></a>', $courseid, $width, $height); } }
/** * sets mimetype, width, and height fields for the media object * * @param object $mediaobject (passed object will be changed) * @param string $courseid the course id * @param string $mediapath = null the media file url or local path (can be ommitted if this info is in $mediaobject->media) * @author brian@mediagonal.ch */ function set_mediainfo(&$mediaobject, $courseid, $mediapath = null) { if (is_null($mediapath)) { if (isset($mediaobject->media)) { $mediapath = $mediaobject->media; } else { // can't do anything without a mediapath return; } } if (!empty($mediaobject)) { global $CFG; require_once $CFG->dirroot . '/question/format/qti2/qt_common.php'; require_once $CFG->libdir . '/filelib.php'; $mediaobject->mimetype = mimeinfo('type', $mediapath); // hw: workaround for bug (typo) in /question/format/qti2/qt_common.php // I opened a bugtracker because of this... $is_img = false; if (function_exists('is_image_by_extension')) { $is_img = is_image_by_extension($mediapath); } else { $is_img = is_image_by_extentsion($mediapath); } if ($is_img || is_sizable_multimedia($mediapath)) { $islocalfile = substr(strtolower($mediapath), 0, 7) == 'http://' ? false : true; if ($islocalfile) { $mediapath = "{$CFG->dataroot}/{$courseid}/{$mediapath}"; } $dimensions = get_file_dimensions($mediapath); $mediaobject->width = $dimensions['x']; $mediaobject->height = $dimensions['y']; } } }