Moved scripts in "docs" one level up into root folder. In addition, removed "docs...
[atutor.git] / mods / _core / modules / version_history.php
1 <?php
2 /************************************************************************/
3 /* ATutor                                                               */
4 /************************************************************************/
5 /* Copyright (c) 2002-2010                                              */
6 /* Inclusive Design Institute                                           */
7 /* http://atutor.ca                                                     */
8 /*                                                                      */
9 /* This program is free software. You can redistribute it and/or        */
10 /* modify it under the terms of the GNU General Public License          */
11 /* as published by the Free Software Foundation.                        */
12 /************************************************************************/
13 // $Id: 
14
15 define('AT_INCLUDE_PATH', '../../../include/');
16 require (AT_INCLUDE_PATH.'vitals.inc.php');
17 admin_authenticate(AT_ADMIN_PRIV_MODULES);
18 require(AT_INCLUDE_PATH.'../mods/_core/modules/classes/ModuleListParser.class.php');
19
20 if (isset($_POST["cancel"]))
21 {
22         header('Location: '.AT_BASE_HREF.'mods/_core/modules/install_modules.php');
23         exit;
24 }
25
26 // check the connection to server update.atutor.ca
27 $update_server = "update.atutor.ca"; 
28 $connection_test_file = "http://" . $update_server . '/index.php';
29 $connection = @file_get_contents($connection_test_file);
30
31 if (!$connection) 
32 {
33         $infos = array('CANNOT_CONNECT_SERVER', $update_server);
34         $msg->addError($infos);
35         
36         require(AT_INCLUDE_PATH.'header.inc.php');
37   $msg->printAll();
38         require(AT_INCLUDE_PATH.'footer.inc.php');
39         exit;
40 }
41
42 if (isset($_GET["id"])) $id = intval($_GET["id"]);
43 else if (isset($_POST["id"])) $id = intval($_POST["id"]);
44
45 // get module list
46 $module_folder = "http://" . $update_server . '/modules/';
47
48 $module_list_xml = @file_get_contents($module_folder . 'module_list.xml');
49
50 if ($module_list_xml) 
51 {
52         $moduleListParser = new ModuleListParser();
53         $moduleListParser->parse($module_list_xml);
54         $module_list_array = $moduleListParser->getParsedArray();
55 }
56 // end of get module list
57
58 $module_content_folder = AT_CONTENT_DIR . "module";
59
60 //debug($_POST["vid"]);
61 //exit;
62 // download process
63 if (isset($_POST["download"]) && !isset($_POST["vid"]))
64 {
65         $msg->addError('NO_ITEM_SELECTED');
66 }
67 else if ($_POST['download'])
68 {
69         $vid = intval($_POST['vid']);
70         $file_content = @file_get_contents($module_folder . $module_list_array[$id]['history'][$vid]['location'].$module_list_array[$id]['history'][$vid]['filename']);
71
72         if (!$file_content)
73         {
74                 $msg->addError('FILE_NOT_EXIST');
75         }
76         else
77         {
78                 header('Content-Type: application/x-zip');
79                 header('Content-transfer-encoding: binary'); 
80                 header('Content-Disposition: attachment; filename="'.htmlspecialchars($module_list_array[$id]['history'][$vid]['filename']).'"');
81                 header('Expires: 0');
82                 header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
83                 header('Pragma: public');
84                 header('Content-Length: '.strlen($file_content));
85         
86                 echo $file_content;
87                 exit;
88         }
89 }
90
91 require (AT_INCLUDE_PATH.'header.inc.php');
92
93 $msg->printErrors();
94 ?>
95
96 <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="form">
97 <div class="input-form">
98
99 <?php 
100 ?>
101 <input type="hidden" name="id" value="<?php echo $id; ?>" />
102 <table class="data" summary="" style="width: 100%" rules="cols">
103 <thead>
104         <tr>
105                 <th scope="col">&nbsp;</th>
106                 <th scope="col"><?php echo _AT('version');?></th>
107                 <th scope="col"><?php echo _AT('publish_date');?></th>
108                 <th scope="col"><?php echo _AT('state');?></th>
109                 <th scope="col"><?php echo _AT('maintainers');?></th>
110                 <th scope="col"><?php echo _AT('notes');?></th>
111         </tr>
112 </thead>
113
114 <tfoot>
115 <tr>
116         <td colspan="6">
117                 <input type="submit" name="download" value="<?php echo _AT('download'); ?>" />
118                 <input type="submit" name="cancel" value="<?php echo _AT('cancel'); ?>" />
119         </td>
120 </tr>
121 </tfoot>
122
123 <tbody>
124 <?php 
125 $num_of_versions = count($module_list_array[$id]['history']);
126
127 if ($num_of_versions == 0)
128 {
129 ?>
130
131 <tr>
132         <td colspan="7">
133 <?php 
134         echo _AT('none_found');
135 ?>
136         </td>
137 </tr>
138
139 <?php 
140 }
141 else
142 {
143         // display version list
144         if(is_array($module_list_array[$id]['history']))
145         {
146                 for ($i=0; $i < $num_of_versions; $i++)
147                 {
148 ?>
149         <tr onmousedown="document.form['m<?php echo $i; ?>'].checked = true; rowselect(this);"  id="r_<?php echo $i; ?>">
150                 <td><input type="radio" name="vid" value="<?php echo $i; ?>" id="m<?php echo $i; ?>" /></td>
151                 <td><label for="m<?php echo $i; ?>"><?php echo $module_list_array[$id]["name"] . ' ' .$module_list_array[$id]['history'][$i]["version"]; ?></label></td>
152                 <td><?php echo $module_list_array[$id]['history'][$i]["date"]; ?></td>
153                 <td><?php echo $module_list_array[$id]['history'][$i]["state"]; ?></td>
154                 <td><?php echo $module_list_array[$id]['history'][$i]["maintainer"]; ?></td>
155                 <td><?php echo $module_list_array[$id]['history'][$i]["notes"]; ?></td>
156         </tr>
157
158 <?php 
159                 }
160         }
161
162 ?>
163 </tbody>
164
165 <?php 
166 }
167 ?>
168 </table>
169
170 </div>
171 </form>
172
173 <?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>