From b40f8bad2f358c132d9ce16b3c8180c2a1b8df45 Mon Sep 17 00:00:00 2001 From: bobopinna Date: Tue, 13 Mar 2007 22:09:24 +0000 Subject: [PATCH] Fixed bug MDL-8725 and fixed some typo in regulars expressions in cmi.objectives elements store and retrieve --- mod/scorm/datamodel.php | 4 ++-- mod/scorm/datamodels/scorm_13.js.php | 4 ++-- mod/scorm/db/upgrade.php | 11 +++++++++++ mod/scorm/version.php | 2 +- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/mod/scorm/datamodel.php b/mod/scorm/datamodel.php index 8c79abc9c39..bcb4dc3a210 100755 --- a/mod/scorm/datamodel.php +++ b/mod/scorm/datamodel.php @@ -42,8 +42,8 @@ foreach ($_POST as $element => $value) { $element = str_replace('__','.',$element); if (substr($element,0,3) == 'cmi') { - $element = preg_replace('/N(\d+)/',".\$1",$element); - $result = scorm_insert_track($USER->id, $scorm->id, $scoid, $attempt, $element, $value) && $result; + $netelement = preg_replace('/\.N(\d+)\./',"\.\$1\.",$element); + $result = scorm_insert_track($USER->id, $scorm->id, $scoid, $attempt, $netelement, $value) && $result; } if (substr($element,0,15) == 'adl.nav.request') { // SCORM 2004 Sequencing Request diff --git a/mod/scorm/datamodels/scorm_13.js.php b/mod/scorm/datamodels/scorm_13.js.php index 9f463227769..1026373eb64 100644 --- a/mod/scorm/datamodels/scorm_13.js.php +++ b/mod/scorm/datamodels/scorm_13.js.php @@ -166,8 +166,8 @@ function SCORMapi1_3() { $objectives = ''; foreach($userdata as $element => $value){ if (substr($element,0,14) == 'cmi.objectives') { - preg_match('/.(\d+)./',$element,$matches); - $element = preg_replace('/.(\d+)./',".N\$1.",$element); + preg_match('/\.(\d+)\./',$element,$matches); + $element = preg_replace('/\.(\d+)\./',".N\$1.",$element); if ($matches[1] == $count) { $count++; $end = strpos($element,$matches[1])+strlen($matches[1]); diff --git a/mod/scorm/db/upgrade.php b/mod/scorm/db/upgrade.php index 30ba1e3ebf1..815d49cedd5 100644 --- a/mod/scorm/db/upgrade.php +++ b/mod/scorm/db/upgrade.php @@ -250,6 +250,17 @@ function xmldb_scorm_upgrade($oldversion=0) { } } + if ($result && $oldversion < 2007031300) { + $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); + } + } + } + return $result; } diff --git a/mod/scorm/version.php b/mod/scorm/version.php index 54a7b3fed82..c99438be575 100755 --- a/mod/scorm/version.php +++ b/mod/scorm/version.php @@ -10,7 +10,7 @@ // catch up now, so until 27th October please only increment in very tiny steps // in HEAD, until we get past that date.. -$module->version = 2007020200; // The (date) version of this module +$module->version = 2007031300; // The (date) version of this module $module->requires = 2007020200; // The version of Moodle that is required $module->cron = 300; // How often should cron check this module (seconds)?