Merge branch 'MDL-42930-master' of git://github.com/damyon/moodle
authorDan Poltawski <dan@moodle.com>
Mon, 18 Nov 2013 06:32:55 +0000 (14:32 +0800)
committerDan Poltawski <dan@moodle.com>
Mon, 18 Nov 2013 06:32:55 +0000 (14:32 +0800)
Conflicts:
mod/scorm/db/upgrade.php

1  2 
mod/scorm/db/upgrade.php

@@@ -175,28 -175,9 +175,31 @@@ function xmldb_scorm_upgrade($oldversio
          upgrade_mod_savepoint(true, 2013090100, 'scorm');
      }
  
+     // Moodle v2.6.0 release upgrade line.
+     // Put any upgrade step following this.
 +    if ($oldversion < 2013110501) {
 +        // Fix invalid $scorm->launch records.
 +        // Get all scorms that have a launch value that references a sco from a different scorm.
 +        $sql = "SELECT s.*
 +                 FROM {scorm} s
 +            LEFT JOIN {scorm_scoes} c ON s.launch = c.id
 +                WHERE c.id IS null OR s.id <> c.scorm";
 +        $scorms = $DB->get_recordset_sql($sql);
 +        foreach ($scorms as $scorm) {
 +            // Find the first launchable sco for this SCORM.
 +            $sqlselect = 'scorm = ? AND '.$DB->sql_isnotempty('scorm_scoes', 'launch', false, true). ' ORDER BY sortorder LIMIT 1';
 +            $sco = $DB->get_record_select('scorm_scoes', $sqlselect, array($scorm->id));
 +            if (!empty($sco)) {
 +                $scorm->launch = $sco->id;
 +                $DB->update_record('scorm', $scorm);
 +            }
 +        }
 +        $scorms->close();
 +
 +        upgrade_mod_savepoint(true, 2013110501, 'scorm');
 +    }
 +
      return true;
  }