]> git.mjollnir.org Git - moodle.git/commitdiff
Fixed a problem with memory use and big data tracks MDL-10318
authorbobopinna <bobopinna>
Tue, 3 Jul 2007 07:52:22 +0000 (07:52 +0000)
committerbobopinna <bobopinna>
Tue, 3 Jul 2007 07:52:22 +0000 (07:52 +0000)
mod/scorm/db/upgrade.php

index d421d97af74fd8ad73138b31122ffe8b6c7e31f4..2f66ea343eee9e50c5d8dd3268b6abbb20479b3d 100644 (file)
@@ -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);
+                                }
+                            }
+                        }
+                    }
                 }
             }
         }