From e23cc5d2e558183655e5dac8242b2c973af50346 Mon Sep 17 00:00:00 2001 From: piers Date: Thu, 26 Feb 2009 18:19:05 +0000 Subject: [PATCH] MDL-18148 - AICC compliance fixes. Fixing general new file API problems, and stripslashes_safe(). --- mod/scorm/datamodels/aicclib.php | 50 +++++++++++++++++++------------- mod/scorm/locallib.php | 2 +- 2 files changed, 31 insertions(+), 21 deletions(-) diff --git a/mod/scorm/datamodels/aicclib.php b/mod/scorm/datamodels/aicclib.php index 94fce520fb4..10759730444 100644 --- a/mod/scorm/datamodels/aicclib.php +++ b/mod/scorm/datamodels/aicclib.php @@ -1,4 +1,5 @@ id); $scorm->cmid = $cm->id; } - $context = get_context_instance(COURSE_MODULE, $scorm->cmid); + $context = get_context_instance(CONTEXT_MODULE, $scorm->cmid); $fs = get_file_storage(); @@ -122,25 +123,29 @@ function scorm_parse_aicc($scorm) { foreach ($ids as $courseid => $id) { if (isset($id->crs)) { - $rows = $id->crs->get_content(); - foreach ($rows as $row) { - if (preg_match("/^(.+)=(.+)$/",$row,$matches)) { - switch (strtolower(trim($matches[1]))) { - case 'course_id': - $courses[$courseid]->id = trim($matches[2]); - break; - case 'course_title': - $courses[$courseid]->title = trim($matches[2]); - break; - case 'version': - $courses[$courseid]->version = 'AICC_'.trim($matches[2]); - break; + $contents = $id->crs->get_content(); + $rows = explode("\r\n", $contents); + if (is_array($rows)) { + foreach ($rows as $row) { + if (preg_match("/^(.+)=(.+)$/",$row,$matches)) { + switch (strtolower(trim($matches[1]))) { + case 'course_id': + $courses[$courseid]->id = trim($matches[2]); + break; + case 'course_title': + $courses[$courseid]->title = trim($matches[2]); + break; + case 'version': + $courses[$courseid]->version = 'AICC_'.trim($matches[2]); + break; + } } } } } if (isset($id->des)) { - $rows = $id->des->get_content(); + $contents = $id->des->get_content(); + $rows = explode("\r\n", $contents); $columns = scorm_get_aicc_columns($rows[0]); $regexp = scorm_forge_cols_regexp($columns->columns); for ($i=1;$iau)) { - $rows = $id->au->get_content(); + $contents = $id->au->get_content(); + $rows = explode("\r\n", $contents); $columns = scorm_get_aicc_columns($rows[0]); $regexp = scorm_forge_cols_regexp($columns->columns); for ($i=1;$icst)) { - $rows = $id->cst->get_content(); + $contents = $id->cst->get_content(); + $rows = explode("\r\n", $contents); $columns = scorm_get_aicc_columns($rows[0],'block'); $regexp = scorm_forge_cols_regexp($columns->columns,'(.+)?,'); for ($i=1;$iort)) { - $rows = $id->ort->get_content(); + $contents = $id->ort->get_content(); + $rows = explode("\r\n", $contents); $columns = scorm_get_aicc_columns($rows[0],'course_element'); $regexp = scorm_forge_cols_regexp($columns->columns,'(.+)?,'); for ($i=1;$ipre)) { - $rows = $id->pre->get_content(); + $contents = $id->pre->get_content(); + $rows = explode("\r\n", $contents); $columns = scorm_get_aicc_columns($rows[0],'structure_element'); $regexp = scorm_forge_cols_regexp($columns->columns,'(.+),'); for ($i=1;$icmp)) { - $rows = $id->cmp->get_content(); + $contents = $id->cmp->get_content(); + $rows = explode("\r\n", $contents); } } //print_r($courses); diff --git a/mod/scorm/locallib.php b/mod/scorm/locallib.php index 23239655ad7..0ea34b0752e 100755 --- a/mod/scorm/locallib.php +++ b/mod/scorm/locallib.php @@ -409,7 +409,7 @@ function scorm_get_tracks($scoid,$userid,$attempt='') { $usertrack->timemodified = 0; foreach ($tracks as $track) { $element = $track->element; - $track->value = stripslashes_safe($track->value); + $track->value = stripslashes($track->value); $usertrack->{$element} = $track->value; switch ($element) { case 'x.start.time':