8612c446a8d7ad9be3b2b104a06b9553f58ae849
[atutor.git] / mods / atutor_opencaps / index.php
1 <?php\r
2 /****************************************************************/\r
3 /* Atutor-OpenCaps Module                                               \r
4 /****************************************************************/\r
5 /* Copyright (c) 2010                           \r
6 /* Written by Antonio Gamba                                             \r
7 /* Adaptive Technology Resource Centre / University of Toronto\r
8 /*\r
9 /* This program is free software. You can redistribute it and/or\r
10 /* modify it under the terms of the GNU General Public License\r
11 /* as published by the Free Software Foundation.\r
12 /****************************************************************/\r
13 \r
14 // load AT vitals\r
15 define('AT_INCLUDE_PATH', '../../include/');\r
16 require (AT_INCLUDE_PATH.'vitals.inc.php');\r
17 authenticate(AT_PRIV_OPEN_CAPS);\r
18 require (AT_INCLUDE_PATH.'header.inc.php');\r
19 \r
20 // load ATutor-OpenCaps Module Vitals \r
21 include_once('include/vitals.inc.php');\r
22 \r
23 if ($ocAtSettings['contentUrlType']==0)\r
24 {\r
25         $contentURL = AT_BASE_HREF.'get.php/'.''.'';\r
26         \r
27 } else if ($ocAtSettings['contentUrlType']==1){\r
28         $contentURL = AT_BASE_HREF.'content/'.$_SESSION['course_id'].'/'.'';\r
29\r
30                 \r
31 if($_SESSION['course_id']==-1)\r
32 {\r
33         $ocAtSettings['messages'][]= $ocAtSettings['lang']['atoc_notActiveCourseError'];\r
34 }\r
35 // update project meta data \r
36 if ($ocAtAction=='updateProject' || $ocAtAction=='deleteProject')\r
37 {\r
38         $myProjectManager = new ATOCProjectManager();\r
39         $activeProjectData = $myProjectManager->_addEditProject($_POST['id'],$_SESSION['login'],$_SESSION['course_id'],$_POST['name'],$_POST['mediaFile'],$_POST['captionFile'],$_POST['width'],$_POST['height'],$ocAtAction);\r
40 \r
41         if ($ocAtAction=='deleteProject')\r
42         {\r
43                 $ocAtSettings['messages'][]= $ocAtSettings['lang']['atoc_projectDeleted'];\r
44         } else {\r
45                 $ocAtSettings['messages'][]= $ocAtSettings['lang']['atoc_projectUpdated'];\r
46         }\r
47         \r
48         $ocAtAction='';\r
49 }\r
50 \r
51 // addProject: if step 1 \r
52 if ($ocAtAction=='addProject' && $_POST['step']=='1')\r
53 {\r
54         if($_POST['ccOption']==0)\r
55         {\r
56                 $captionFile = "";\r
57                 \r
58         } else {\r
59                 $captionFile = $_POST['captionFile'];\r
60         }\r
61 \r
62         // run Project Manager Class\r
63         $myProjectManager = new ATOCProjectManager();\r
64         $myProjectManager->_addEditProject(0, $_SESSION['login'], $_SESSION['course_id'], $_POST['projectName'], $_POST['mediaFile'], $captionFile,$_POST['width'],$_POST['height']);\r
65         $ocAtAction='';\r
66         $ocAtSettings['messages'][] = $ocAtSettings['lang']['atoc_projectCreated'].': <br/><i>'.$_POST['projectName'].'</i>';\r
67         \r
68 } // end step 1\r
69 \r
70 if($ocAtSettings['ocWebPath'] == '')\r
71 {\r
72         $ocWebPath_replace = str_replace('index.php','opencaps/',$_SERVER['SCRIPT_NAME']);\r
73         $ocAtSettings['ocWebPath'] = 'http://'.$_SERVER['HTTP_HOST'].''.$ocWebPath_replace;\r
74 }\r
75 \r
76 if ($ocAtSettings['debugMode'])\r
77 {\r
78         echo '<h1>'.$ocAtSettings['lang']['atoc_debugModeActive'].'</h1>';\r
79 }\r
80 ?>\r
81 <script src="mods/AtOpenCaps/include/basic.js"></script>\r
82 <script src="mods/AtOpenCaps/include/atoc.js"></script>\r
83 <script src="mods/AtOpenCaps/flowplayer/flowplayer-3.2.2.min.js"></script>\r
84 <link rel="stylesheet" type="text/css" href="mods/AtOpenCaps/module.css">\r
85 \r
86 <div id="AtOpenCaps">\r
87         <?php\r
88         if (count($ocAtSettings['messages'])>0)\r
89         {\r
90                 echo '<div id="info">';\r
91                 \r
92                 for($i=0;$i<count($ocAtSettings['messages']);$i++)\r
93                 {\r
94                         echo '<p>'.$ocAtSettings['messages'][$i].'</p>';\r
95                 }\r
96                 echo '</div>';\r
97         }\r
98 \r
99         // show AT vars\r
100         if($ocAtSettings['showAtVars'])\r
101         {\r
102                 AtOpenCapsDebug::_seeAlSessionVars();\r
103         } \r
104          ?>\r
105         \r
106         <div id="ATOC_links">\r
107                 <div id="subnavlistcontainer">\r
108                         <div id="subnavbacktopage">\r
109                                 <a href="<?php echo AT_BASE_HREF; ?>mods/_core/content/index.php">\r
110                                 <img height="11" border="0" width="10" style="float: left;" src="<?php echo AT_BASE_HREF; ?>images/arrowicon.gif" alt="<?php echo _AT('atoc_backToContentLinkAlt'); ?>"></a>&nbsp;\r
111                         </div>\r
112                 </div> \r
113 \r
114         <ul id="subnavlist">\r
115          <li <?php if($ocAtAction=='') {?> class="active" <?php }?>><a href="mods/AtOpenCaps/index.php"><?php echo _AT('atoc_myCaptionProjectsLink'); ?>        </a></li>\r
116          <li <?php if($ocAtAction=='fileManager') {?> class="active" <?php }?>><a href="mods/AtOpenCaps/index.php?action=fileManager"><?php echo _AT('atoc_uploadMediaLink'); ?></a></li>\r
117          <li <?php if($ocAtAction=='addProject') {?> class="active" <?php }?>><a href="mods/AtOpenCaps/index.php?action=addProject&step=0"><?php echo _AT('atoc_addProjectLink'); ?></a></li>\r
118          <li <?php if($ocAtAction=='ccEditor') {?> class="active" <?php }?>><a href="mods/AtOpenCaps/index.php?action=ccEditor<?php \r
119                         if ($_SESSION['ATOC_activeProjectId']!='')\r
120                         {\r
121                                 echo '&id='.$_SESSION['ATOC_activeProjectId'];\r
122                         } \r
123                         \r
124                         ?>"><?php echo _AT('atoc_captionEditorLink'); ?></a></li>\r
125          <li <?php if($ocAtAction=='preview') {?> class="active" <?php }?>><a href="mods/AtOpenCaps/index.php?action=preview<?php \r
126                         if ($_SESSION['ATOC_activeProjectId']!='')\r
127                         {\r
128                                 echo '&id='.$_SESSION['ATOC_activeProjectId'];\r
129                         } \r
130                         \r
131                         ?>"><?php echo _AT('atoc_previewLink'); ?></a></li>\r
132         <li <?php if($ocAtAction=='atOcAbout') {?> class="active" <?php }?>><a href="mods/AtOpenCaps/index.php?action=atOcAbout"><?php echo _AT('atoc_helpLink'); ?></a></li>\r
133         </ul> \r
134         </div>\r
135 \r
136         <?php\r
137         if ($ocAtAction=='ccEditor')\r
138         {\r
139                 // run Project Manager Class\r
140                 if($_SESSION['ATOC_activeProjectId']!='')\r
141                 {\r
142                         $activeProjectId = $_GET['id'];\r
143                         \r
144                         // set the active id in session\r
145                         $_SESSION['ATOC_activeProjectId'] = $activeProjectId; \r
146                         \r
147                 } else {\r
148                         // get the last project\r
149                         $myProjectManager = new ATOCProjectManager();\r
150                         $myOcProjects = $myProjectManager->_loadProjects($_SESSION['login'],$_SESSION['course_id'],0);\r
151                         $activeProjectId = $myOcProjects[0]['id']; \r
152                         \r
153                         // get the last project\r
154                         $myProjectManager = null;\r
155                 }\r
156                 \r
157 \r
158                 // set active session ID\r
159                 $myProjectManager = new ATOCProjectManager();\r
160                 $myProjectManager->_setActiveProject($activeProjectId,$_SESSION['login'],$_SESSION['course_id'],$_SESSION['token']);\r
161                 $activeProjectId .= '-'.$_SESSION['token'];\r
162 \r
163                 if($ocAtSettings['debugMode'])\r
164                 {\r
165                         // testing service before sending data \r
166                         $theServiceUrl = AT_BASE_HREF.'mods/AtOpenCaps/service.php?id='.$activeProjectId.'&action=getMedia'; \r
167                         $theJson = file_get_contents($theServiceUrl);\r
168                         $media_info = json_decode($theJson);\r
169                         $JsonDebug = '';\r
170                         $JsonDebug .= '\r
171                         <h3>Open Caps service: getMedia</h3>\r
172                         <form name="debugJson" id="debugJson" method="post" action="">\r
173                           <textarea name="jsonArray" cols="80" rows="10" id="jsonArray">\r
174 URL: '.$theServiceUrl;\r
175                         foreach ($media_info as $name=>$value)\r
176                         {\r
177                                 $JsonDebug .= '\r
178 \r
179 '.$name.': '.$value;\r
180                         } \r
181                         $JsonDebug .='\r
182 </textarea>\r
183                         </form>\r
184                         ';\r
185                         echo $JsonDebug;\r
186                 } // end debug\r
187                 \r
188                 \r
189                 $ccEditorHtml = '<div id="ATOC_editor" class="input-form">\r
190 <iframe style="overflow-y: scroll;" scrolling="no" height="780px" frameborder="0" width="100%" align="top" class="wrapper" \r
191 src="'.$ocAtSettings['ocWebPath'].'/index.php?id='.$activeProjectId.'&athome='.AT_BASE_HREF.'" name="AtOpenCaps" id="AtOpenCaps">\r
192 '._AT('atoc_noIframeSupportedError').'\r
193 </iframe>\r
194                 </div>';\r
195                 \r
196                 echo $ccEditorHtml;\r
197                                 \r
198                 \r
199         } // end if ccEditor\r
200 \r
201         else if ($ocAtAction=='fileManager')\r
202         {\r
203                 echo '<div id="ATOC_fileManager" class="input-form">';\r
204                 echo '\r
205 <iframe style="overflow-y: scroll;" scrolling="no" height="600px" frameborder="0" width="100%" align="top" \r
206 src="'.AT_BASE_HREF.'mods/_core/file_manager/index.php?framed=1&popup=0" name="ATFileManager" id="ATFileManager">\r
207 '._AT('atoc_noIframeSupportedError').'\r
208 </iframe>\r
209 </div>\r
210 ';\r
211         }\r
212 \r
213         else if ($ocAtAction=='preview')\r
214         {\r
215                 $myProjectManager = new ATOCProjectManager();\r
216                 $myPreviewProject = $myProjectManager->_loadProjects($_SESSION['login'],$_SESSION['course_id'],$_GET['id']);\r
217                 \r
218                 // set width and  height\r
219                 if ($myPreviewProject[0]['width']=='')\r
220                 {\r
221                         $playerWidth=320;\r
222                         \r
223                 } else {\r
224                         $playerWidth = $myPreviewProject[0]['width'];\r
225                 }\r
226                 \r
227                         // set width and  height\r
228                 if ($myPreviewProject[0]['height']=='')\r
229                 {\r
230                         $playerHeight=240;\r
231                         \r
232                 } else {\r
233                         $playerHeight = $myPreviewProject[0]['height'];\r
234                 }\r
235 \r
236                 $playerHtml = '\r
237 <div id="ATOC_preview" class="input-form">';\r
238                 $playerHtml .='\r
239 <iframe scrolling="yes" width="100%" height="'.($playerHeight+50).'px" frameborder="0" align="top" \r
240 src="'.AT_BASE_HREF.'mods/AtOpenCaps/player.php?mediaFile='.$contentURL.$myPreviewProject[0]['mediaFile'].'&captionFile='.$contentURL.$myPreviewProject[0]['captionFile'].'\r
241 &width='.$playerWidth.'&height='.$playerHeight.'" name="ATPlayer" id="ATPlayer">\r
242         This option will not work correctly. \r
243         Unfortunately, your browser does not support inline frames.\r
244 </iframe>\r
245 </div>\r
246 ';\r
247                 echo $playerHtml;               \r
248                 \r
249         }\r
250 \r
251         else if ($ocAtAction=='addProject')\r
252         {\r
253         ?>\r
254         <div id="ATOC_addCcProject" class="input-form">\r
255         <form name="addProject" id="addProject" method="post" action="<?php echo $_SERVER['PHP_SELF']?>">\r
256         <?php   \r
257                 // step 0\r
258                 if (isset($_GET['step']) && $_GET['step']=='0')\r
259                 {\r
260                         // start server files class \r
261                         $theServerDir = AT_CONTENT_DIR.''.$_SESSION['course_id'];\r
262                         $myServerFiles = new ServerFiles($theServerDir);\r
263                         $myFileArray = $myServerFiles->directoryToArray($theServerDir, true);\r
264                 \r
265                         // if not media files found\r
266                         if (count($myFileArray)==0)\r
267                         {\r
268                                 echo '<p>'._AT('atoc_noMediaFileFound').'</p>';\r
269                                 echo '<p><a href="mods/AtOpenCaps/index.php?action=fileManager">'._AT('atoc_uploadMediaMsg').'</a></p>';\r
270                         } else {\r
271                                 //echo "<p>Select one of the available media files:</p>";\r
272                         ?>\r
273                           <p><strong><?php echo _AT('atoc_projectName');?>:</strong> \r
274                             <input name="projectName" id="projectName" value="" type="text" size="35"/>\r
275                           </p>\r
276                           <p><strong><?php echo _AT('atoc_mediaName'); ?>:</strong> \r
277                   <select name="mediaFile" id="mediaFile">\r
278                                 <?php \r
279                                 for ($i=0;$i<count($myFileArray);$i++)\r
280                                 {\r
281                                         echo '<option value="'.$myFileArray[$i].'">'.$myFileArray[$i].'</option>';\r
282                                 } // end for\r
283                                 ?>\r
284                   </select>\r
285                   </p>\r
286                   <p>\r
287                   <strong><?php echo _AT('atoc_mediaWidth'); ?>:</strong> <input name="width" id="width" value="" type="text" size="4"/>\r
288                    <strong><?php echo _AT('atoc_mediaHeight'); ?>:</strong> <input name="height" id="height" value="" type="text" size="4"/>\r
289                   </p>\r
290                           <p><strong> \r
291                             <input name="ccOption" type="radio" value="0" checked>\r
292                             <?php echo _AT('atoc_newCaptionFileMsg'); ?><br>\r
293                             <input type="radio" name="ccOption" value="1">\r
294                             <?php echo _AT('atoc_existCaptionFileMsg'); ?>:  \r
295                             <input name="captionFile" id="captionFile" type="text"/>\r
296                             </strong></p>\r
297                           <p> \r
298                             <input name="step" id="step" value="1" type="hidden"/>\r
299                             <input name="action" id="action" value="addProject" type="hidden"/>\r
300                             <input name="addProject" type="submit" class="button" id="addProject" value="<?php echo _AT('atoc_addProjectButtonLabel');?>" />\r
301                           </p>\r
302                         <?php                           \r
303                         } // end if not files\r
304                 } // end step 0\r
305                 ?>\r
306         \r
307 </form>\r
308 </div>\r
309 <?php\r
310 \r
311         } // end addProject\r
312 \r
313         // listing my current projects\r
314         else if ($ocAtAction=='' || (($ocAtAction=='editProject')&& $_GET['id']!=''))\r
315         {\r
316                 //echo "<h4>My Projects</h4>";\r
317                 echo '<div id="ATOC_projects" class="input-form">';\r
318                 // run Project Manager Class\r
319                 $myProjectManager = new ATOCProjectManager();\r
320                 $myOcProjects = $myProjectManager->_loadProjects($_SESSION['login'],$_SESSION['course_id'],0);\r
321                 //print_r($myOcProjects);\r
322                 \r
323                 if (count($myOcProjects)==0)\r
324                 {\r
325                         echo '<p>'._AT('atoc_projectsNotFoundError').'.<p/>';\r
326                         echo '<p><a href="mods/AtOpenCaps/index.php?action=addProject&step=0">'._AT('atoc_addProjectLink').'</a><p/>';\r
327                 } else {\r
328                 //echo '<br/>Total Projects: '.count($myOcProjects);\r
329                         \r
330                 $myProjectsHtml = '';\r
331                 $myProjectsHtml .= '\r
332                 <form name="atocForm" id="atocForm" method="post" action="'.$_SERVER['PHP_SELF'].'">\r
333                   <table width="100%" border="0" cellspacing="2" cellpadding="5">\r
334                     <tr class="ATOC_labels"> \r
335                       <td width="40%">'._AT('atoc_projectName').'</td>\r
336                       <td width="25%">'._AT('atoc_mediaName').'</td>\r
337                       <td width="25%">'._AT('atoc_captionName').'</td>\r
338                       <td width="5%">&nbsp;</td>\r
339                       <td width="5%">&nbsp;</td>\r
340                     </tr>\r
341                 ';\r
342                         // load project in a table\r
343                         $flip = 1;\r
344                         for ($i=0; $i<count($myOcProjects);$i++)\r
345                         {\r
346                                 if ($flip==1)\r
347                                 {\r
348                                         $bgColor = 'bgcolor="#EAEBD8"';\r
349                                 } else {\r
350                                         $bgColor = '';\r
351                                 }\r
352                                 $flip *= -1;\r
353                                 \r
354                               if($ocAtAction=='editProject' && $myOcProjects[$i]['id']==$_GET['id'])\r
355                               {\r
356                                 $myProjectsHtml .= '\r
357                             <tr '.$bgColor.'>\r
358                                 <td><a name="oc_'.$myOcProjects[$i]['id'].'"></a><input name="id" id="id" value="'.$myOcProjects[$i]['id'].'" type="hidden"/>\r
359                                 <input name="name" id="name" value="'.$myOcProjects[$i]['name'].'" type="text" size="35"/></td>\r
360                                 <td><input name="mediaFile" id="mediaFile" value="'.$myOcProjects[$i]['mediaFile'].'" type="text" size="35"/>\r
361                                 <br/>'._AT('atoc_mediaWidth').': <input name="width" id="width" value="'.$myOcProjects[$i]['width'].'" type="text" size="4"/>\r
362                                 <br/>'._AT('atoc_mediaHeight').': <input name="height" id="height" value="'.$myOcProjects[$i]['height'].'" type="text" size="4"/>\r
363                                 </td>\r
364                                 <td><input name="captionFile" id="captionFile" value="'.$myOcProjects[$i]['captionFile'].'" type="text" size="35"/></td>\r
365                                 <td><input name="editProject" type="submit" class="button" id="editProject" value="'._AT('atoc_saveProjectButtonLabel').'" />\r
366                                 <input name="action" id="action" value="updateProject" type="hidden"/>\r
367                                 </td>\r
368                                 <td><input name="deleteProject" type="button" class="button" id="deleteProject" value="'._AT('atoc_deleteProjectButtonLabel').'" onClick="confirmDelete(\'action\')" /></td>\r
369                             </tr>\r
370                                 \r
371                                 ';\r
372                               \r
373                               } else {\r
374                                       $myProjectsHtml .= '\r
375                                  <tr '.$bgColor.'>'.\r
376                                     '<td class="ATOC_projecLink"><a href="mods/AtOpenCaps/index.php?action=ccEditor&id='.$myOcProjects[$i]['id'].'">'.$myOcProjects[$i]['name'].'</a></td>\r
377                                     <td><a href="'.$contentURL.''.$myOcProjects[$i]['mediaFile'].'">'.$myOcProjects[$i]['mediaFile'].'</a>&nbsp;</td>\r
378                                     <td><a href="'.$contentURL.''.$myOcProjects[$i]['captionFile'].'">'.$myOcProjects[$i]['captionFile'].'</a>&nbsp;</td>\r
379                                 <td><a href="'.$_SERVER['PHP_SELF'].'?action=editProject&id='.$myOcProjects[$i]['id'].'#'.'oc_'.$myOcProjects[$i]['id'].'">['._AT('atoc_editProjectLink').']</a></td>\r
380                                 <td><a href="'.$_SERVER['PHP_SELF'].'?action=preview&id='.$myOcProjects[$i]['id'].'">['._AT('atoc_previewProjectLink').']</a></td>\r
381                             </tr>\r
382                                      ';\r
383                               } // end if edit project\r
384                                     \r
385                         } // end for\r
386                         \r
387                         \r
388                 $myProjectsHtml .= '\r
389                   </table>\r
390                   </form>\r
391                 ';\r
392                 echo $myProjectsHtml;\r
393                 \r
394                 } //  end if not projects found\r
395                 \r
396                 echo '</div>';\r
397         } // end listing \r
398         \r
399         // if about/help\r
400         else if ($ocAtAction == 'atOcAbout')\r
401         {\r
402                 $atOc_readme = file_get_contents('README');\r
403                 $atOc_readme = str_replace(chr(13),'<br/>',$atOc_readme);               \r
404                 $atOc_readme = str_replace(chr(32),'&nbsp;',$atOc_readme);\r
405                 $atOc_readme = str_replace(chr(9),'&nbsp;&nbsp;&nbsp;',$atOc_readme);\r
406                 $atOcAboutHtml = '<div id="ATOC_about" class="input-form">\r
407                 <p>'.$atOc_readme.'</p>\r
408                 \r
409                 </div>\r
410                 ';\r
411                 echo $atOcAboutHtml;\r
412                 \r
413         } // end if about/help\r
414         ?>\r
415 \r
416 </div>\r
417 \r
418 <?php require (AT_INCLUDE_PATH.'footer.inc.php'); ?>