From e23cc5d2e558183655e5dac8242b2c973af50346 Mon Sep 17 00:00:00 2001 From: piers <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 94fce520fb..1075973044 100644 --- a/mod/scorm/datamodels/aicclib.php +++ b/mod/scorm/datamodels/aicclib.php @@ -1,4 +1,5 @@ <?php // $Id$ + function scorm_add_time($a, $b) { $aes = explode(':',$a); $bes = explode(':',$b); @@ -98,7 +99,7 @@ function scorm_parse_aicc($scorm) { $cm = get_coursemodule_from_instance('scorm', $scorm->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;$i<count($rows);$i++) { @@ -153,7 +158,8 @@ function scorm_parse_aicc($scorm) { } } if (isset($id->au)) { - $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;$i<count($rows);$i++) { @@ -166,7 +172,8 @@ function scorm_parse_aicc($scorm) { } } if (isset($id->cst)) { - $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;$i<count($rows);$i++) { @@ -180,7 +187,8 @@ function scorm_parse_aicc($scorm) { } } if (isset($id->ort)) { - $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;$i<count($rows);$i++) { @@ -194,7 +202,8 @@ function scorm_parse_aicc($scorm) { } } if (isset($id->pre)) { - $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;$i<count($rows);$i++) { @@ -204,7 +213,8 @@ function scorm_parse_aicc($scorm) { } } if (isset($id->cmp)) { - $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 23239655ad..0ea34b0752 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': -- 2.39.5