From: bobopinna Date: Tue, 3 Jul 2007 07:52:22 +0000 (+0000) Subject: Fixed a problem with memory use and big data tracks MDL-10318 X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=7d97f6f87bf7b1f73afb16bf1fb6e06173bd01e5;p=moodle.git Fixed a problem with memory use and big data tracks MDL-10318 --- diff --git a/mod/scorm/db/upgrade.php b/mod/scorm/db/upgrade.php index d421d97af7..2f66ea343e 100644 --- a/mod/scorm/db/upgrade.php +++ b/mod/scorm/db/upgrade.php @@ -55,16 +55,20 @@ function xmldb_scorm_upgrade($oldversion=0) { 'previous' => '0'); /// Retrieve old datas - if ($olddatas = get_records('scorm_scoes')) { - foreach ($olddatas as $olddata) { - $newdata = new stdClass(); - $newdata->scoid = $olddata->id; - foreach ($fields as $field => $value) { - if ($olddata->$field != $value) { - $newdata->name = addslashes($field); - $newdata->value = addslashes($olddata->$field); - $id = insert_record('scorm_scoes_data', $newdata); - $result = $result && ($id != 0); + if ($scorms = get_records('scorm')) { + foreach ($scorms as $scorm) { + if ($olddatas = get_records('scorm_scoes','scorm', $scorm->id)) { + foreach ($olddatas as $olddata) { + $newdata = new stdClass(); + $newdata->scoid = $olddata->id; + foreach ($fields as $field => $value) { + if ($olddata->$field != $value) { + $newdata->name = addslashes($field); + $newdata->value = addslashes($olddata->$field); + $id = insert_record('scorm_scoes_data', $newdata); + $result = $result && ($id != 0); + } + } } } } @@ -200,7 +204,7 @@ function xmldb_scorm_upgrade($oldversion=0) { $result = $result && create_table($table); } - //Adding new field to table scorm + //Adding new field to table scorm if ($result && $oldversion < 2007011800) { /// Define field format to be added to data_comments @@ -251,12 +255,20 @@ function xmldb_scorm_upgrade($oldversion=0) { } if ($result && $oldversion < 2007031300) { - if ($tracks = get_records('scorm_scoes_track')) { - foreach ($tracks as $track) { - $element = preg_replace('/\.N(\d+)\./',".\$1.",$track->element); - if ($track->element != $element) { - $track->element = $element; - update_record('scorm_scoes_track',$track); + if ($scorms = get_records('scorm')) { + foreach ($scorms as $scorm) { + if ($scoes = get_records('scorm_scoes','scorm',$scorm->id)) { + foreach ($scoes as $sco) { + if ($tracks = get_records('scorm_scoes_track','scoid',$sco->id)) { + foreach ($tracks as $track) { + $element = preg_replace('/\.N(\d+)\./',".\$1.",$track->element); + if ($track->element != $element) { + $track->element = $element; + update_record('scorm_scoes_track',$track); + } + } + } + } } } }