You are here

qt_common.php in Quiz 6.5

Same filename and directory in other branches
  1. 6.6 includes/moodle/question/format/qti2/qt_common.php

File

includes/moodle/question/format/qti2/qt_common.php
View source
<?php

// $Id$

//***********************************

// qt_common.php

//***********************************

// This contains code common to mediagonal-modified questions
//

/**
 * gets a list of all the media files for the given course
 *
 * @param int courseid
 * @return array containing filenames
 * @calledfrom type/<typename>/editquestion.php 
 * @package questionbank
 * @subpackage importexport
 */
function get_course_media_files($courseid) {

  // this code lifted from mod/quiz/question.php and modified
  global $CFG;
  $images = null;
  make_upload_directory("{$course->id}");

  // Just in case
  $coursefiles = get_directory_list("{$CFG->dataroot}/{$courseid}", $CFG->moddata);
  foreach ($coursefiles as $filename) {
    if (is_media_by_extension($filename)) {
      $images["{$filename}"] = $filename;
    }
  }
  return $images;
}

/**
 * determines whether or not a file is an image, based on the file extension
 *
 * @param string $file the filename
 * @return boolean
 */
function is_image_by_extension($file) {
  $extensionsregex = '/\\.(gif|jpg|jpeg|jpe|png|tif|tiff|bmp|xbm|rgb|svf)$/';
  if (preg_match($extensionsregex, $file)) {
    return true;
  }
  return false;
}

/**
 * determines whether or not a file is a media file, based on the file extension
 *
 * @param string $file the filename
 * @return boolean
 */
function is_media_by_extension($file) {
  $extensionsregex = '/\\.(gif|jpg|jpeg|jpe|png|tif|tiff|bmp|xbm|rgb|svf|swf|mov|mpg|mpeg|wmf|avi|mpe|flv|mp3|ra|ram)$/';
  if (preg_match($extensionsregex, $file)) {
    return true;
  }
  return false;
}

/**
 * determines whether or not a file is a multimedia file, based on the file extension
 *
 * @param string $file the filename
 * @return boolean
 */
function is_multimedia_by_extension($file) {
  $extensionsregex = '/\\.(swf|mov|mpg|mpeg|wmf|avi|mpe|flv)$/';
  if (preg_match($extensionsregex, $file)) {
    return true;
  }
  return false;
}

/**
 * determines whether or not a file is a multimedia file of a type php can get the dimension for, based on the file extension
 *
 * @param string $file the filename
 * @return boolean
 */
function is_sizable_multimedia($file) {
  $extensionsregex = '/\\.(swf)$/';
  if (preg_match($extensionsregex, $file)) {
    return true;
  }
  return false;
}

/**
 * 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);
  }
}

/**
 * determines the x and y size of the given file
 *
 * @param string $file the filename 
 * @return array looks like array('x'=>171, 'y'=>323), or array('x'=>0, 'y'=>0) if size can't be determined
 */
function get_file_dimensions($file) {
  $imginfo = @getimagesize($file);
  if ($imginfo !== FALSE) {
    return array(
      'x' => $imginfo[0],
      'y' => $imginfo[1],
    );
  }
  else {
    return array(
      'x' => 0,
      'y' => 0,
    );
  }
}

Functions

Namesort descending Description
get_course_media_files gets a list of all the media files for the given course
get_file_dimensions determines the x and y size of the given file
get_media_tag creates a media tag to use for choice media
is_image_by_extension determines whether or not a file is an image, based on the file extension
is_media_by_extension determines whether or not a file is a media file, based on the file extension
is_multimedia_by_extension determines whether or not a file is a multimedia file, based on the file extension
is_sizable_multimedia determines whether or not a file is a multimedia file of a type php can get the dimension for, based on the file extension