510f11ca3dad773323bcddeafa0d06aeab341fe7
[moodle.git] / mod / scorm / validate.php
1 <?php // $Id$
3     require_once("../../config.php");
4     require_once("lib.php");
6     require_login();
7     
8     //
9     // Create a temporary directory to unzip package and validate imsmanifest
10     //
12     $reference = clean_param($_GET["reference"], PARAM_PATH);
13     $courseid = $_GET["id"];
14     $datadir = '';
15     $launch = 0;
16     if (isset($_GET["datadir"])) {
17         $datadir = $_GET["datadir"];
18     }
19     $result = '';
20     if ($scormdir = make_upload_directory("$courseid/$CFG->moddata/scorm")) {
21         if ($tempdir = scorm_datadir($scormdir, $datadir)) {
22             copy ("$CFG->dataroot/$courseid/$reference", $tempdir."/".basename($reference));
23             unzip_file($tempdir."/".basename($reference), $tempdir, false);
24             $result = scorm_validate($tempdir."/imsmanifest.xml");
25         } else {
26             $result = "packagedir";
27         }
28     } else {
29         $result = "datadir";
30     }
31     $errorlogs = '';
32     if (($result != "regular") && ($result != "found")) {
33         $result = get_string($result,'scorm');
34         if ($CFG->scorm_validate == 'domxml') {
35             foreach ($errors as $error) {
36                 $errorlogs .= get_string($error->type,"scorm",$error->data) . ".\n";
37             }
38         }
39         //
40         // Delete files and temporary directory
41         //
42         if (is_dir($tempdir))
43             scorm_delete_files($tempdir);
44         } else {
45         //
46         // Delete package file
47         //
48         unlink ($tempdir."/".basename($reference));
49         if (isset($_GET["instance"])) {
50             $fp = fopen($CFG->dataroot.'/'.$reference,"r");
51             $fstat = fstat($fp);
52             fclose($fp);
53             if ($scorm = get_record("scorm","id",$_GET["instance"])) {
54                 $launch = $scorm->launch;
55                 if ($scorm->timemodified < $fstat["mtime"]) {
56                     $launch = 0;
57                 }
58             }
59         }
60     }
61     //
62     // Print validation result
63     //
64     echo $result . "\n";
65     echo $launch . "\n";
66     $datadir = substr($tempdir,strlen($scormdir));
67     echo $datadir . "\n";
68     if ($errorlogs != '') {
69         echo $errorlogs;
70     }
71 ?>
72