You are here

function qformat_blackboard_6::readdata in Quiz 6.5

Same name and namespace in other branches
  1. 6.6 includes/moodle/question/format/blackboard_6/format.php \qformat_blackboard_6::readdata()

Return complete file within an array, one item per line

Parameters

string filename name of file:

Return value

mixed contents array or false on failure

Overrides qformat_default::readdata

File

includes/moodle/question/format/blackboard_6/format.php, line 153

Class

qformat_blackboard_6

Code

function readdata($filename) {

  /// Returns complete file with an array, one item per line
  global $CFG;

  // if the extension is .dat we just return that,
  // if .zip we unzip the file and get the data
  $ext = substr($this->realfilename, strpos($this->realfilename, '.'), strlen($this->realfilename) - 1);
  if ($ext == '.dat') {
    if (!is_readable($filename)) {
      error("File is not readable");
    }
    return file($filename);
  }
  $unique_code = time();
  $temp_dir = $CFG->dataroot . "/temp/bbquiz_import/" . $unique_code;
  $this->temp_dir = $temp_dir;
  if ($this
    ->check_and_create_import_dir($unique_code)) {
    if (is_readable($filename)) {
      if (!copy($filename, "{$temp_dir}/bboard.zip")) {
        error("Could not copy backup file");
      }
      if (unzip_file("{$temp_dir}/bboard.zip", '', false)) {

        // assuming that the information is in res0001.dat
        // after looking at 6 examples this was always the case
        $q_file = "{$temp_dir}/res00001.dat";
        if (is_file($q_file)) {
          if (is_readable($q_file)) {
            $filearray = file($q_file);

            /// Check for Macintosh OS line returns (ie file on one line), and fix
            if (ereg("\r", $filearray[0]) and !ereg("\n", $filearray[0])) {
              return explode("\r", $filearray[0]);
            }
            else {
              return $filearray;
            }
          }
        }
        else {
          error("Could not find question data file in zip");
        }
      }
      else {
        print "filename: {$filename}<br />tempdir: {$temp_dir} <br />";
        error("Could not unzip file.");
      }
    }
    else {
      error("Could not read uploaded file");
    }
  }
  else {
    error("Could not create temporary directory");
  }
}