changed git call from https to git readonly
[atutor.git] / mods / scorm_packages / scorm-1.2 / lib.inc.php
1 <?php
2 /*
3  * mods/scorm_packages/scorm-1.2/lib.inc.php
4  *
5  * This file is part of ATutor, see http://www.atutor.ca
6  * 
7  * Copyright (C) 2005  Matthai Kurian 
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; either version 2
12  * of the License, or (at your option) any later version.
13  * 
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  * 
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22  */
23
24 require(AT_INCLUDE_PATH.'../mods/_core/file_manager/filemanager.inc.php');
25
26 class package_handler_scorm_1_2 {
27
28         function getManagerItemLinks ($id) {
29                 $result = $this->getOrgs ($id);
30                 $rv = Array();
31                 while ($row = mysql_fetch_assoc($result)) {
32                         array_push ($rv,
33                                 '<div class="scormitem">'
34                                 . '<a href="mods/scorm_packages/scorm-1.2/view.php?org_id='
35                                 . $row['org_id'].'"'
36                                 . ' title="ADL SCORM-1.2 Package"'
37                                 . ' onclick="show(\'scorm_1_2_throb_' . $row['org_id'] . '\')"'
38                                 . '>'
39                                 .  $row['title'] .
40                                 '</a></div>' . '
41                         <div class="scormfeedback" id="scorm_1_2_throb_'
42                         . $row['org_id']
43                         . '" style="display:none;position:absolute;">'
44                         . '<p>'
45                         . _AT(package_scorm_1_2_rte_loading)
46                         . '</p>'
47                         . '<img src="images/transfer.gif" height="20" width="90" alt="">'
48                         . '</div>'
49                                 
50                         );
51                 }
52                 return $rv;
53         }
54
55         function getLearnerItemLinks ($id) {
56                 $result = $this->getOrgs ($id);
57                 $rv = Array();
58                 while ($row = mysql_fetch_assoc($result)) {
59                         array_push ($rv, ''
60                                 . '<div class="scormitem">'
61                                 . '<a href="mods/scorm_packages/scorm-1.2/learner_view.php?org_id='
62                                 . $row['org_id'].'"'
63                                 . ' title="ADL SCORM-1.2 Package"'
64                                 . ' onclick="show(\'scorm_1_2_throb_' . $row['org_id'] . '\')"'
65                                 . '>'
66                                 .  $row['title'] 
67                                 . '</a>'
68                                 . '</div>'
69
70                         . ' <div class="scormfeedback" id="scorm_1_2_throb_'
71                         . $row['org_id']
72                         . '" style="display:none;position:absolute;">'
73                         . '<p>'
74                         . _AT(package_scorm_1_2_rte_loading)
75                         . '</p>'
76                         . '<img src="images/transfer.gif" height="20" width="90" alt="">'
77                         . '</div>'
78                                 
79                         );
80                 }
81                 return $rv;
82         }
83
84         function getCMILinks ($id) {
85                 $result = $this->getOrgs ($id);
86                 $rv = Array();
87                 while ($row = mysql_fetch_assoc($result)) {
88                         array_push ($rv,
89                                 '<div class="scormitem">'
90                                 . '<a href="mods/scorm_packages/scorm-1.2/cmi.php?org_id='
91                                 . $row['org_id'].'"'
92                                 . ' title="SCORM-1.2 CMI Data"'
93                                 . '>'
94                                 .  $row['title'] .
95                                 '</a></div>' 
96                         );
97                 }
98                 return $rv;
99         }
100
101         function getSettingsLinks ($id) {
102                 $result = $this->getOrgs ($id);
103                 $rv = Array();
104                 while ($row = mysql_fetch_assoc($result)) {
105                         array_push ($rv,
106                                 '<div class="scormitem">'
107                                 . '<a href="mods/scorm_packages/scorm-1.2/settings.php?org_id='
108                                 . $row['org_id'].'"'
109                                 . ' title="ADL SCORM-1.2 Package"'
110                                 . '>'
111                                 .  $row['title'] .
112                                 '</a></div>' 
113                         );
114                 }
115                 return $rv;
116         }
117
118         function getDeleteFormItems ($id, $i) {
119                 $result = $this->getOrgs ($id);
120                 $rv = Array();
121                 while ($row = mysql_fetch_assoc($result)) {
122                         array_push ($rv, ''
123                                 . '<input type="checkbox" '
124                                 . 'id="goners['. $i . ']" '
125                                 . 'name="goners[' . $i . ']" '
126                                 . 'value="' . $row[org_id] . '" />'
127                                 . '<label class="scorminput" '
128                                 .  'for="goners['. $i .']">' . $row['title']
129                                 .  '</label>'
130                                 
131                         );
132                         $i++;
133                 }
134                 return $rv;
135         }
136
137         function getOrgs ($id) {
138
139                 global $db;
140                 $sql = "SELECT  o.org_id,
141                                 o.title
142                         FROM    ".TABLE_PREFIX."packages p,
143                                 ".TABLE_PREFIX."scorm_1_2_org o
144                         WHERE   p.package_id = $id
145                         AND     o.package_id = p.package_id
146                         ORDER   BY o.org_id
147                 ";
148
149                 return mysql_query($sql, $db);
150         }
151
152         function deletePackages ($pids) {
153                 global $msg;
154                 global $db;
155
156                 /*
157                  * Dangerous deleting begins here
158                  */
159
160                 foreach ($pids as $id) {
161                         $sql = "SELECT  p.package_id
162                                 FROM    ".TABLE_PREFIX."packages p,
163                                         ".TABLE_PREFIX."scorm_1_2_org o
164                                 WHERE   o.org_id = $id
165                                 AND     o.package_id = p.package_id
166                                 AND     p.ptype      = 'scorm-1.2'
167                                 AND     p.course_id  = $_SESSION[course_id]
168                         ";
169
170                         $result = mysql_query($sql, $db);
171                         if (!$result) contunue;
172
173                         $row = mysql_fetch_assoc($result);
174                         $pkg = $row['package_id'];
175
176                         $sql = "SELECT  o.org_id
177                                 FROM    ".TABLE_PREFIX."packages p,
178                                         ".TABLE_PREFIX."scorm_1_2_org o
179                                 WHERE   p.package_id = $pkg
180                                 AND     o.package_id = p.package_id
181                         ";
182
183                         $result = mysql_query($sql, $db);
184                         $orgs = array();
185                         while ($row = mysql_fetch_assoc($result)) {
186                                 array_push ($orgs, $row['org_id']);     
187                         }
188
189                         $sql = "SELECT item_id
190                                 FROM ".TABLE_PREFIX."scorm_1_2_item 
191                                 WHERE  org_id = $id
192                                 ";
193                         $result = mysql_query($sql, $db);
194                         $items = array('null');
195                         while ($row = mysql_fetch_assoc($result)) {
196                                 array_push ($items, $row['item_id']);   
197                         }
198                         
199                         /*
200                          * Delete cmi data of all items in organization for
201                          * all learners
202                          */
203                         $sql = "DELETE  FROM ".TABLE_PREFIX."cmi
204                                 WHERE   item_id in (" . implode (',', $items) . ")";
205
206                         $result = mysql_query ($sql, $db);
207
208         
209                         /*
210                          * Delete all items belonging to this organization
211                          */
212
213                         $sql = "DELETE  FROM ".TABLE_PREFIX."scorm_1_2_item
214                                 WHERE   org_id = $id";
215
216                         $result = mysql_query ($sql, $db);
217
218                         /*
219                          * Delete the organization entry itself
220                          */
221
222                         $sql = "DELETE  FROM ".TABLE_PREFIX."scorm_1_2_org
223                                 WHERE   org_id = $id";
224
225                         $result = mysql_query ($sql, $db);
226
227                         if (sizeOf ($orgs) == 1) {
228
229                                 /*
230                                  * There is no more organization left from
231                                  * this  particular scorm-1.2 package, so
232                                  * we delete the package entry and all files
233                                  * which came with the package
234                                  */
235
236                                 $sql = "DELETE  FROM ".TABLE_PREFIX."packages WHERE package_id = $pkg";
237
238                                 $result = mysql_query ($sql, $db);
239
240                                 $pdir = AT_INCLUDE_PATH
241                                 . '../sco/'
242                                 . $_SESSION['course_id']
243                                 . '/' . $pkg . '/';
244
245                                 clr_dir ($pdir);
246                         }
247                 }
248         }
249 }
250
251 $plug['scorm-1.2'] = new package_handler_scorm_1_2();
252
253 ?>