configure_extensions.php 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499
  1. <?php // $Id: configure_homepage.php 9246 2006-09-25 13:24:53 +0000 (lun., 25 sept. 2006) bmol $
  2. /*
  3. ==============================================================================
  4. Dokeos - elearning and course management software
  5. Copyright (c) 2004 Dokeos S.A.
  6. Copyright (c) 2003 Ghent University (UGent)
  7. Copyright (c) 2001 Universite catholique de Louvain (UCL)
  8. Copyright (c) Olivier Brouckaert
  9. For a full list of contributors, see "credits.txt".
  10. The full license can be read in "license.txt".
  11. This program is free software; you can redistribute it and/or
  12. modify it under the terms of the GNU General Public License
  13. as published by the Free Software Foundation; either version 2
  14. of the License, or (at your option) any later version.
  15. See the GNU General Public License for more details.
  16. Contact: Dokeos, 181 rue Royale, B-1000 Brussels, Belgium, info@dokeos.com
  17. ==============================================================================
  18. */
  19. // name of the language file that needs to be included
  20. $language_file='admin';
  21. $cidReset=true;
  22. include('../inc/global.inc.php');
  23. $this_section=SECTION_PLATFORM_ADMIN;
  24. api_protect_admin_script();
  25. $interbreadcrumb[] = array ('url' => 'index.php', 'name' => get_lang('PlatformAdmin'));
  26. // Database Table Definitions
  27. $tbl_settings_current = Database::get_main_table(TABLE_MAIN_SETTINGS_CURRENT);
  28. $message = '';
  29. require api_get_path(LIBRARY_PATH).'formvalidator/FormValidator.class.php';
  30. if(isset($_POST['activeExtension'])){
  31. switch ($_POST['extension_code']){
  32. case 'visio' :
  33. $sql = 'UPDATE '.$tbl_settings_current.' SET
  34. selected_value="true"
  35. WHERE variable="service_visio"
  36. AND subkey="active"';
  37. $rs = api_sql_query($sql, __FILE__, __LINE__);
  38. if(mysql_affected_rows()>0){
  39. // select all the courses and insert the tool inside
  40. $sql = 'SELECT db_name FROM '.Database::get_main_table(TABLE_MAIN_COURSE);
  41. $rs = api_sql_query($sql, __FILE__, __LINE__);
  42. while($row = mysql_fetch_array($rs)){
  43. if(!empty($_POST['visioconference_url']))
  44. {
  45. $sql = 'INSERT INTO '.$row['db_name'].'.'.TABLE_TOOL_LIST.' SET
  46. name="'.TOOL_VISIO_CONFERENCE.'",
  47. link="conference/index.php?type=conference",
  48. image="visio.gif",
  49. visibility="1",
  50. admin="0",
  51. address="squaregrey.gif",
  52. target="_self",
  53. category="interaction"';
  54. api_sql_query($sql, __FILE__, __LINE__);
  55. }
  56. if(!empty($_POST['visioclassroom_url']))
  57. {
  58. $sql = 'INSERT INTO '.$row['db_name'].'.'.TABLE_TOOL_LIST.' SET
  59. name="'.TOOL_VISIO_CLASSROOM.'",
  60. link="conference/index.php?type=classroom",
  61. image="visio.gif",
  62. visibility="1",
  63. admin="0",
  64. address="squaregrey.gif",
  65. target="_self",
  66. category="authoring"';
  67. api_sql_query($sql, __FILE__, __LINE__);
  68. }
  69. }
  70. $message = get_lang('ServiceActivated');
  71. }
  72. $sql = 'UPDATE '.$tbl_settings_current.' SET
  73. selected_value="'.addslashes($_POST['visioconference_url']).'"
  74. WHERE variable="service_visio"
  75. AND subkey="visioconference_url"';
  76. $rs = api_sql_query($sql, __FILE__, __LINE__);
  77. $sql = 'UPDATE '.$tbl_settings_current.' SET
  78. selected_value="'.addslashes($_POST['visioclassroom_url']).'"
  79. WHERE variable="service_visio"
  80. AND subkey="visioclassroom_url"';
  81. $rs = api_sql_query($sql, __FILE__, __LINE__);
  82. if(empty($message))
  83. {
  84. $message = get_lang('ServiceReconfigured');
  85. }
  86. break;
  87. case 'ppt2lp' :
  88. $sql = 'UPDATE '.$tbl_settings_current.' SET
  89. selected_value="true"
  90. WHERE variable="service_ppt2lp"
  91. AND subkey="active"';
  92. $rs = api_sql_query($sql, __FILE__, __LINE__);
  93. if(mysql_affected_rows()>0){
  94. $message = get_lang('ServiceActivated');
  95. }
  96. $sql = 'UPDATE '.$tbl_settings_current.' SET
  97. selected_value="'.addslashes($_POST['host']).'"
  98. WHERE variable="service_ppt2lp"
  99. AND subkey="host"';
  100. api_sql_query($sql, __FILE__, __LINE__);
  101. $sql = 'UPDATE '.$tbl_settings_current.' SET
  102. selected_value="'.addslashes($_POST['ftp_password']).'"
  103. WHERE variable="service_ppt2lp"
  104. AND subkey="ftp_password"';
  105. api_sql_query($sql, __FILE__, __LINE__);
  106. $sql = 'UPDATE '.$tbl_settings_current.' SET
  107. selected_value="'.addslashes($_POST['user']).'"
  108. WHERE variable="service_ppt2lp"
  109. AND subkey="user"';
  110. api_sql_query($sql, __FILE__, __LINE__);
  111. $sql = 'UPDATE '.$tbl_settings_current.' SET
  112. selected_value="'.addslashes($_POST['path_to_lzx']).'"
  113. WHERE variable="service_ppt2lp"
  114. AND subkey="path_to_lzx"';
  115. api_sql_query($sql, __FILE__, __LINE__);
  116. $sql = 'UPDATE '.$tbl_settings_current.' SET
  117. selected_value="'.addslashes($_POST['size']).'"
  118. WHERE variable="service_ppt2lp"
  119. AND subkey="size"';
  120. api_sql_query($sql, __FILE__, __LINE__);
  121. break;
  122. }
  123. }
  124. $listActiveServices = array();
  125. // get the list of active services
  126. $sql = 'SELECT variable FROM '.$tbl_settings_current.' WHERE variable LIKE "service_%" AND subkey="active" and selected_value="true"';
  127. $rs = api_sql_query($sql, __FILE__, __LINE__);
  128. while($row = mysql_fetch_array($rs)){
  129. $listActiveServices[] = $row['variable'];
  130. }
  131. $javascript_service_displayed = '';
  132. if(isset($_GET['display'])){
  133. $javascript_service_displayed = 'document.getElementById("extension_content_'.$_GET['display'].'").style.display = "block"';
  134. }
  135. // javascript to handle accordion behaviour
  136. $javascript_message = '';
  137. if(!empty($message)){
  138. $javascript_message =
  139. '
  140. document.getElementById("message").style.display = "block";
  141. var timer = setTimeout(hideMessage,5000);
  142. ';
  143. }
  144. $htmlHeadXtra[]= '
  145. <script type="text/javascript">
  146. var listeDiv;
  147. var extensionsHeader = new Array();
  148. var extensionsContent = new Array();
  149. window.onload = loadTables;
  150. function loadTables(){
  151. '.$javascript_message.'
  152. var listeDiv = document.getElementsByTagName("div");
  153. // fill extensionsHeader and extensionsContent
  154. for(var i=0 ; i < listeDiv.length ; i++){
  155. if(listeDiv[i].id.indexOf(\'extension_header\')!=-1){
  156. listeDiv[i].onclick = afficheContent;
  157. extensionsHeader.push(listeDiv[i]);
  158. }
  159. if(listeDiv[i].id.indexOf("extension_content")!=-1){
  160. extensionsContent.push(listeDiv[i]);
  161. }
  162. }
  163. '.$javascript_service_displayed.'
  164. }
  165. function hideMessage(){
  166. document.getElementById("message").style.display = "none";
  167. }
  168. function afficheContent(event){
  169. var id = this.id.replace("header","content");
  170. switch(document.getElementById(id).style.display){
  171. case "block" :
  172. document.getElementById(id).style.display = "none";
  173. break;
  174. case "none" :
  175. document.getElementById(id).style.display = "block";
  176. for(var i=0 ; i < extensionsContent.length ; i++){
  177. if(extensionsContent[i].id != id)
  178. extensionsContent[i].style.display = "none";
  179. }
  180. break;
  181. }
  182. }
  183. </script>';
  184. $nameTool = get_lang('ConfigureExtensions');
  185. Display::display_header($nameTool);
  186. ?>
  187. <div id="message" style="display: none">
  188. <?php
  189. if(!empty($message))
  190. Display::display_normal_message($message)
  191. ?>
  192. </div>
  193. <div id="content" align="center">
  194. <!-- INSTRUCTIONS TO ADD AN EXTENSION HERE
  195. - copy paste a "main_*" div
  196. - set the names of the subdiv to extension_header_yourextension and extension_content_yourextension
  197. - extension_content_yourextension is the hidden div where you have to put your form / activation process
  198. - extension_header_yourextension is the name of your extension
  199. - you do not need to add javascript to display / hide your divs
  200. - please fill free to improve the global display of the document
  201. -->
  202. <!-- VISIOCONFERENCE -->
  203. <div id="main_visio">
  204. <div id="extension_header_visio" class="accordion_header">
  205. <a href="#"><?php echo get_lang('Visioconf') ?></a>
  206. </div>
  207. <div id="extension_content_visio" style="display:none" class="accordion_content">
  208. <?php echo get_lang('VisioconfDescription') ?><br /><br />
  209. <table width="100%">
  210. <tr>
  211. <td>
  212. <img src="<?php echo api_get_path(WEB_IMG_PATH).'screenshot_conf.jpg' ?>" />
  213. </td>
  214. <td align="center" width="50%">
  215. <?php
  216. $form = new FormValidator('visio');
  217. $form -> addElement('text', 'visioconference_url', get_lang('VideoConferenceUrl'));
  218. $form -> addElement('html','<br /><br />');
  219. $form -> addElement('text', 'visioclassroom_url', get_lang('VideoClassroomUrl'));
  220. $form -> addElement('hidden', 'extension_code', 'visio');
  221. $defaults = array();
  222. $renderer = $form -> defaultRenderer();
  223. $renderer -> setElementTemplate('<div style="text-align:left">{label}</div><div style="text-align:left">{element}</div>');
  224. $form -> addElement('html','<br /><br />');
  225. if(in_array('service_visio',$listActiveServices))
  226. {
  227. $sql = 'SELECT subkey, selected_value FROM '.$tbl_settings_current.'
  228. WHERE variable = "service_visio"
  229. AND (subkey = "visioconference_url" OR subkey = "visioclassroom_url")';
  230. $rs = api_sql_query($sql, __FILE__, __LINE__);
  231. while($row = mysql_fetch_assoc($rs))
  232. {
  233. $defaults[$row['subkey']] = $row['selected_value'];
  234. }
  235. $form -> addElement('submit', 'activeExtension', get_lang('ReconfigureExtension'));
  236. }
  237. else {
  238. $form -> addElement('submit', 'activeExtension', get_lang('ActiveExtension'));
  239. }
  240. $form -> setDefaults($defaults);
  241. $form -> display();
  242. ?>
  243. </td>
  244. </tr>
  245. </table>
  246. </div>
  247. </div>
  248. <!-- PPT2LP -->
  249. <div id="main_ppt2lp">
  250. <div id="extension_header_ppt2lp" class="accordion_header">
  251. <a href="#"><?php echo get_lang('Ppt2lp') ?></a>
  252. </div>
  253. <div id="extension_content_ppt2lp" style="display:none" class="accordion_content">
  254. <?php echo get_lang('Ppt2lpDescription') ?><br /><br />
  255. <table width="100%">
  256. <tr>
  257. <td width="50%">
  258. <img width="90%" src="<?php echo api_get_path(WEB_IMG_PATH).'screenshot_ppt2lp.jpg' ?>" />
  259. </td>
  260. <td align="center" width="50%">
  261. <form method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
  262. <?php
  263. $form = new FormValidator('ppt2lp');
  264. $form -> addElement('text', 'host', get_lang('Host'));
  265. $form -> addElement('html','<br /><br />');
  266. $form -> addElement('text', 'user', get_lang('UserOnHost'));
  267. $form -> addElement('html','<br /><br />');
  268. $form -> addElement('text', 'ftp_password', get_lang('FtpPassword'));
  269. $form -> addElement('html','<br /><br />');
  270. $form -> addElement('text', 'path_to_lzx', get_lang('PathToLzx'));
  271. $form -> addElement('html','<br /><br />');
  272. $options = array(
  273. '540x405'=>'540x405',
  274. '640x480'=>'640x480',
  275. '720x540'=>'720x540',
  276. '800x600'=>'800x600',
  277. '1000x750'=>'1000x750'
  278. );
  279. $form -> addElement('select', 'size', get_lang('SlideSize'), $options);
  280. $form -> addElement('hidden', 'extension_code', 'ppt2lp');
  281. $defaults = array();
  282. $renderer = $form -> defaultRenderer();
  283. $renderer -> setElementTemplate('<div style="text-align:left">{label}</div><div style="text-align:left">{element}</div>');
  284. $form -> addElement('html','<br /><br />');
  285. if(in_array('service_ppt2lp',$listActiveServices))
  286. {
  287. $sql = 'SELECT subkey, selected_value FROM '.$tbl_settings_current.'
  288. WHERE variable = "service_ppt2lp"
  289. AND subkey <> "active"';
  290. $rs = api_sql_query($sql, __FILE__, __LINE__);
  291. while($row = mysql_fetch_assoc($rs))
  292. {
  293. $defaults[$row['subkey']] = $row['selected_value'];
  294. }
  295. $form -> addElement('submit', 'activeExtension', get_lang('ReconfigureExtension'));
  296. }
  297. else {
  298. $defaults['size'] = '720x540';
  299. $form -> addElement('submit', 'activeExtension', get_lang('ActiveExtension'));
  300. }
  301. $form -> setDefaults($defaults);
  302. $form -> display();
  303. ?>
  304. </form>
  305. </td>
  306. </tr>
  307. </table>
  308. </div>
  309. </div>
  310. <!-- EPHORUS -->
  311. <div id="main_ephorus">
  312. <div id="extension_header_ephorus" class="accordion_header">
  313. <a href="#"><?php echo get_lang('EphorusPlagiarismPrevention') ?></a>
  314. </div>
  315. <div id="extension_content_ephorus" style="display:none;padding:0;width:780px;" class="accordion_content">
  316. <table width="100%" cellpadding="0" cellspacing="0">
  317. <tr>
  318. <td align="center">
  319. <?php
  320. $language=$_SESSION['_user']['language'];
  321. $language='';
  322. switch($language){
  323. case '':
  324. $TBL_LANGUAGES = Database::get_main_table(TABLE_MAIN_LANGUAGE);
  325. $platform_language=api_get_setting("platformLanguage");
  326. $sql="SELECT isocode FROM ".$TBL_LANGUAGES." WHERE english_name='$platform_language'";
  327. $result_sql=api_sql_query($sql);
  328. $isocode_language=mysql_result($result_sql,0,0);
  329. break;
  330. case 'english': $isocode_language='en';break;
  331. case 'french': $isocode_language='fr';break;
  332. case 'dutch': $isocode_language='nl';break;
  333. case 'german': $isocode_language='de';break;
  334. case 'danish': $isocode_language='dk';break;
  335. case 'finnish': $isocode_language='fi';break;
  336. case 'italian': $isocode_language='it';break;
  337. case 'norwegian': $isocode_language='no';break;
  338. case 'portugese': $isocode_language='pt';break;
  339. case 'spanish': $isocode_language='es';break;
  340. case 'swedish': $isocode_language='se';break;
  341. }
  342. ?>
  343. <iframe frameborder="0" width="780" height="480" src="http://www.ephorus.com/dokeos_<?php echo $isocode_language; ?>.html"></iframe>
  344. </td>
  345. </tr>
  346. </table>
  347. </div>
  348. </div>
  349. <!-- SEARCH -->
  350. <div id="main_search">
  351. <div id="extension_header_search" class="accordion_header">
  352. <a href="#"><?php echo get_lang('SearchEngine') ?></a>
  353. </div>
  354. <div id="extension_content_search" style="display:none" class="accordion_content">
  355. <?php echo get_lang('SearchEngineDescription') ?><br /><br />
  356. <table width="100%">
  357. <tr>
  358. <td width="50%">
  359. <img src="<?php echo api_get_path(WEB_IMG_PATH).'screenshot_search.jpg' ?>" />
  360. </td>
  361. <td align="center" width="50%">
  362. <form method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
  363. <input type="hidden" name="extension_code" value="search" />
  364. <input type="submit" name="activeExtension" value="<?php echo get_lang('ActiveExtension') ?>" />
  365. </form>
  366. </td>
  367. </tr>
  368. </table>
  369. </div>
  370. </div>
  371. <!-- SERVER STATS -->
  372. <div id="main_serverstats">
  373. <div id="extension_header_serverstats" class="accordion_header">
  374. <a href="#"><?php echo get_lang('ServerStatistics') ?></a>
  375. </div>
  376. <div id="extension_content_serverstats" style="display:none" class="accordion_content">
  377. <?php echo get_lang('ServerStatisticsDescription') ?><br /><br />
  378. <table width="100%">
  379. <tr>
  380. <td width="50%">
  381. <img src="<?php echo api_get_path(WEB_IMG_PATH).'screenshot_serverstats.jpg' ?>" />
  382. </td>
  383. <td align="center" width="50%">
  384. <form method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
  385. <input type="hidden" name="extension_code" value="serverstats" />
  386. <input type="submit" name="activeExtension" value="<?php echo get_lang('ActiveExtension') ?>" />
  387. </form>
  388. </td>
  389. </tr>
  390. </table>
  391. </div>
  392. </div>
  393. <!-- BANDWIDTH STATS -->
  394. <div id="main_bandwidthstats">
  395. <div id="extension_header_bandwidthstats" class="accordion_header">
  396. <a href="#"><?php echo get_lang('BandWidthStatistics') ?></a>
  397. </div>
  398. <div id="extension_content_bandwidthstats" style="display:none" class="accordion_content">
  399. <?php echo get_lang('BandWidthStatisticsDescription') ?><br /><br />
  400. <table width="100%">
  401. <tr>
  402. <td width="50%">
  403. <img src="<?php echo api_get_path(WEB_IMG_PATH).'screenshot_bandwidth.jpg' ?>" />
  404. </td>
  405. <td align="center" width="50%">
  406. <form method="POST" action="<?php echo $_SERVER['PHP_SELF'] ?>">
  407. <input type="hidden" name="extension_code" value="bandwidthstats" />
  408. <input type="submit" name="activeExtension" value="<?php echo get_lang('ActiveExtension') ?>" />
  409. </form>
  410. </td>
  411. </tr>
  412. </table>
  413. </div>
  414. </div>
  415. </div><!-- /content -->
  416. <?php
  417. /*
  418. ==============================================================================
  419. FOOTER
  420. ==============================================================================
  421. */
  422. Display::display_footer();
  423. ?>