configure_extensions.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  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. $tool_table = Database::get_course_table(TABLE_TOOL_LIST,$row['db_name']);
  46. $sql = 'INSERT INTO '.$tool_table.' SET
  47. name="'.TOOL_VISIO_CONFERENCE.'",
  48. link="conference/index.php?type=conference",
  49. image="visio.gif",
  50. visibility="1",
  51. admin="0",
  52. address="squaregrey.gif",
  53. target="_self",
  54. category="interaction"';
  55. api_sql_query($sql, __FILE__, __LINE__);
  56. }
  57. if(!empty($_POST['visioclassroom_url']))
  58. {
  59. $sql = 'INSERT INTO '.$tool_table.' SET
  60. name="'.TOOL_VISIO_CLASSROOM.'",
  61. link="conference/index.php?type=classroom",
  62. image="visio.gif",
  63. visibility="1",
  64. admin="0",
  65. address="squaregrey.gif",
  66. target="_self",
  67. category="authoring"';
  68. api_sql_query($sql, __FILE__, __LINE__);
  69. }
  70. }
  71. $message = get_lang('ServiceActivated');
  72. }
  73. $sql = 'UPDATE '.$tbl_settings_current.' SET
  74. selected_value="'.addslashes($_POST['visioconference_url']).'"
  75. WHERE variable="service_visio"
  76. AND subkey="visioconference_url"';
  77. $rs = api_sql_query($sql, __FILE__, __LINE__);
  78. $sql = 'UPDATE '.$tbl_settings_current.' SET
  79. selected_value="'.addslashes($_POST['visioclassroom_url']).'"
  80. WHERE variable="service_visio"
  81. AND subkey="visioclassroom_url"';
  82. $rs = api_sql_query($sql, __FILE__, __LINE__);
  83. $sql = 'UPDATE '.$tbl_settings_current.' SET
  84. selected_value="'.addslashes($_POST['visio_rtmp_host_local']).'"
  85. WHERE variable="service_visio"
  86. AND subkey="visio_rtmp_host_local"';
  87. $rs = api_sql_query($sql, __FILE__, __LINE__);
  88. //$sql = 'UPDATE '.$tbl_settings_current.' SET
  89. // selected_value="'.addslashes($_POST['visio_is_web_rtmp']).'"
  90. // WHERE variable="service_visio"
  91. // AND subkey="visio_is_web_rtmp"';
  92. //$rs = api_sql_query($sql, __FILE__, __LINE__);
  93. $sql = 'UPDATE '.$tbl_settings_current.' SET
  94. selected_value="'.addslashes($_POST['visio_rtmp_port']).'"
  95. WHERE variable="service_visio"
  96. AND subkey="visio_rtmp_port"';
  97. $rs = api_sql_query($sql, __FILE__, __LINE__);
  98. $sql = 'UPDATE '.$tbl_settings_current.' SET
  99. selected_value="'.addslashes($_POST['visio_rtmp_tunnel_port']).'"
  100. WHERE variable="service_visio"
  101. AND subkey="visio_rtmp_tunnel_port"';
  102. $rs = api_sql_query($sql, __FILE__, __LINE__);
  103. if(empty($message))
  104. {
  105. $message = get_lang('ServiceReconfigured');
  106. }
  107. break;
  108. case 'ppt2lp' :
  109. $sql = 'UPDATE '.$tbl_settings_current.' SET
  110. selected_value="true"
  111. WHERE variable="service_ppt2lp"
  112. AND subkey="active"';
  113. $rs = api_sql_query($sql, __FILE__, __LINE__);
  114. if(mysql_affected_rows()>0){
  115. $message = get_lang('ServiceActivated');
  116. }
  117. $sql = 'UPDATE '.$tbl_settings_current.' SET
  118. selected_value="'.addslashes($_POST['host']).'"
  119. WHERE variable="service_ppt2lp"
  120. AND subkey="host"';
  121. api_sql_query($sql, __FILE__, __LINE__);
  122. $sql = 'UPDATE '.$tbl_settings_current.' SET
  123. selected_value="'.addslashes($_POST['ftp_password']).'"
  124. WHERE variable="service_ppt2lp"
  125. AND subkey="ftp_password"';
  126. api_sql_query($sql, __FILE__, __LINE__);
  127. $sql = 'UPDATE '.$tbl_settings_current.' SET
  128. selected_value="'.addslashes($_POST['user']).'"
  129. WHERE variable="service_ppt2lp"
  130. AND subkey="user"';
  131. api_sql_query($sql, __FILE__, __LINE__);
  132. $sql = 'UPDATE '.$tbl_settings_current.' SET
  133. selected_value="'.addslashes($_POST['path_to_lzx']).'"
  134. WHERE variable="service_ppt2lp"
  135. AND subkey="path_to_lzx"';
  136. api_sql_query($sql, __FILE__, __LINE__);
  137. $sql = 'UPDATE '.$tbl_settings_current.' SET
  138. selected_value="'.addslashes($_POST['size']).'"
  139. WHERE variable="service_ppt2lp"
  140. AND subkey="size"';
  141. api_sql_query($sql, __FILE__, __LINE__);
  142. break;
  143. }
  144. }
  145. $listActiveServices = array();
  146. // get the list of active services
  147. $sql = 'SELECT variable FROM '.$tbl_settings_current.' WHERE variable LIKE "service_%" AND subkey="active" and selected_value="true"';
  148. $rs = api_sql_query($sql, __FILE__, __LINE__);
  149. while($row = mysql_fetch_array($rs)){
  150. $listActiveServices[] = $row['variable'];
  151. }
  152. $javascript_service_displayed = '';
  153. if(isset($_GET['display'])){
  154. $javascript_service_displayed = 'document.getElementById("extension_content_'.$_GET['display'].'").style.display = "block"';
  155. }
  156. // javascript to handle accordion behaviour
  157. $javascript_message = '';
  158. if(!empty($message)){
  159. $javascript_message =
  160. '
  161. document.getElementById("message").style.display = "block";
  162. var timer = setTimeout(hideMessage,5000);
  163. ';
  164. }
  165. $htmlHeadXtra[]= '
  166. <script type="text/javascript">
  167. var listeDiv;
  168. var extensionsHeader = new Array();
  169. var extensionsContent = new Array();
  170. window.onload = loadTables;
  171. function loadTables(){
  172. '.$javascript_message.'
  173. var listeDiv = document.getElementsByTagName("div");
  174. // fill extensionsHeader and extensionsContent
  175. for(var i=0 ; i < listeDiv.length ; i++){
  176. if(listeDiv[i].id.indexOf(\'extension_header\')!=-1){
  177. listeDiv[i].onclick = afficheContent;
  178. extensionsHeader.push(listeDiv[i]);
  179. }
  180. if(listeDiv[i].id.indexOf("extension_content")!=-1){
  181. extensionsContent.push(listeDiv[i]);
  182. }
  183. }
  184. '.$javascript_service_displayed.'
  185. }
  186. function hideMessage(){
  187. document.getElementById("message").style.display = "none";
  188. }
  189. function afficheContent(event){
  190. var id = this.id.replace("header","content");
  191. switch(document.getElementById(id).style.display){
  192. case "block" :
  193. document.getElementById(id).style.display = "none";
  194. break;
  195. case "none" :
  196. document.getElementById(id).style.display = "block";
  197. for(var i=0 ; i < extensionsContent.length ; i++){
  198. if(extensionsContent[i].id != id)
  199. extensionsContent[i].style.display = "none";
  200. }
  201. break;
  202. }
  203. }
  204. </script>';
  205. $nameTool = get_lang('ConfigureExtensions');
  206. Display::display_header($nameTool);
  207. ?>
  208. <div id="message" style="display: none">
  209. <?php
  210. if(!empty($message))
  211. Display::display_normal_message($message)
  212. ?>
  213. </div>
  214. <div id="content" align="center">
  215. <!-- INSTRUCTIONS TO ADD AN EXTENSION HERE
  216. - copy paste a "main_*" div
  217. - set the names of the subdiv to extension_header_yourextension and extension_content_yourextension
  218. - extension_content_yourextension is the hidden div where you have to put your form / activation process
  219. - extension_header_yourextension is the name of your extension
  220. - you do not need to add javascript to display / hide your divs
  221. - please fill free to improve the global display of the document
  222. -->
  223. <!-- VISIOCONFERENCE -->
  224. <div id="main_visio">
  225. <div id="extension_header_visio" class="accordion_header">
  226. <a href="#"><?php echo get_lang('Visioconf') ?></a>
  227. </div>
  228. <div id="extension_content_visio" style="display:none" class="accordion_content">
  229. <?php echo get_lang('VisioconfDescription') ?><br /><br />
  230. <table width="100%">
  231. <tr>
  232. <td>
  233. <img src="<?php echo api_get_path(WEB_IMG_PATH).'screenshot_conf.jpg' ?>" />
  234. </td>
  235. <td align="center" width="50%">
  236. <?php
  237. $form = new FormValidator('visio');
  238. $form -> addElement('text', 'visioconference_url', get_lang('VideoConferenceUrl'));
  239. $form -> addElement('html','<br /><br />');
  240. $form -> addElement('text', 'visioclassroom_url', get_lang('VideoClassroomUrl'));
  241. $form -> addElement('html','<br /><br />');
  242. $form -> addElement('text', 'visio_rtmp_host_local', get_lang('VisioHostLocal'));
  243. $form -> addElement('html','<br /><br />');
  244. //$form -> addElement('text', 'visio_is_web_rtmp', get_lang('VisioRTMPIsWeb'));
  245. //$form -> addElement('html','<br /><br />');
  246. $form -> addElement('text', 'visio_rtmp_port', get_lang('VisioRTMPPort'));
  247. $form -> addElement('html','<br /><br />');
  248. $form -> addElement('text', 'visio_rtmp_tunnel_port', get_lang('VisioRTMPTunnelPort'));
  249. $form -> addElement('hidden', 'extension_code', 'visio');
  250. $defaults = array();
  251. $renderer = $form -> defaultRenderer();
  252. $renderer -> setElementTemplate('<div style="text-align:left">{label}</div><div style="text-align:left">{element}</div>');
  253. $form -> addElement('html','<br /><br />');
  254. if(in_array('service_visio',$listActiveServices))
  255. {
  256. $sql = 'SELECT subkey, selected_value FROM '.$tbl_settings_current.'
  257. WHERE variable = "service_visio"';
  258. $rs = api_sql_query($sql, __FILE__, __LINE__);
  259. while($row = mysql_fetch_assoc($rs))
  260. {
  261. $defaults[$row['subkey']] = $row['selected_value'];
  262. }
  263. $form -> addElement('submit', 'activeExtension', get_lang('ReconfigureExtension'));
  264. }
  265. else {
  266. $form -> addElement('submit', 'activeExtension', get_lang('ActivateExtension'));
  267. }
  268. $form -> setDefaults($defaults);
  269. $form -> display();
  270. ?>
  271. </td>
  272. </tr>
  273. </table>
  274. </div>
  275. </div>
  276. <!-- PPT2LP -->
  277. <div id="main_ppt2lp">
  278. <div id="extension_header_ppt2lp" class="accordion_header">
  279. <a href="#"><?php echo get_lang('Ppt2lp') ?></a>
  280. </div>
  281. <div id="extension_content_ppt2lp" style="display:none" class="accordion_content">
  282. <?php echo get_lang('Ppt2lpDescription').' '.get_lang('Ppt2lpVoiceRecordingNeedsRed5') ?><br /><br />
  283. <table width="100%">
  284. <tr>
  285. <td width="50%">
  286. <img width="90%" src="<?php echo api_get_path(WEB_IMG_PATH).'screenshot_ppt2lp.jpg' ?>" />
  287. </td>
  288. <td align="center" width="50%">
  289. <form method="POST" action="<?php echo api_get_self(); ?>">
  290. <?php
  291. $form = new FormValidator('ppt2lp');
  292. $form -> addElement('text', 'host', get_lang('Host'));
  293. $form -> addElement('html','<br /><br />');
  294. $form -> addElement('text', 'user', get_lang('UserOnHost'));
  295. $form -> addElement('html','<br /><br />');
  296. $form -> addElement('text', 'ftp_password', get_lang('FtpPassword'));
  297. $form -> addElement('html','<br /><br />');
  298. $form -> addElement('text', 'path_to_lzx', get_lang('PathToLzx'));
  299. $form -> addElement('html','<br /><br />');
  300. $options = array(
  301. '540x405'=>'540x405',
  302. '640x480'=>'640x480',
  303. '720x540'=>'720x540',
  304. '800x600'=>'800x600',
  305. '1000x750'=>'1000x750'
  306. );
  307. $form -> addElement('select', 'size', get_lang('SlideSize'), $options);
  308. $form -> addElement('hidden', 'extension_code', 'ppt2lp');
  309. $defaults = array();
  310. $renderer = $form -> defaultRenderer();
  311. $renderer -> setElementTemplate('<div style="text-align:left">{label}</div><div style="text-align:left">{element}</div>');
  312. $form -> addElement('html','<br /><br />');
  313. if(in_array('service_ppt2lp',$listActiveServices))
  314. {
  315. $sql = 'SELECT subkey, selected_value FROM '.$tbl_settings_current.'
  316. WHERE variable = "service_ppt2lp"
  317. AND subkey <> "active"';
  318. $rs = api_sql_query($sql, __FILE__, __LINE__);
  319. while($row = mysql_fetch_assoc($rs))
  320. {
  321. $defaults[$row['subkey']] = $row['selected_value'];
  322. }
  323. $form -> addElement('submit', 'activeExtension', get_lang('ReconfigureExtension'));
  324. }
  325. else {
  326. $defaults['size'] = '720x540';
  327. $form -> addElement('submit', 'activeExtension', get_lang('ActivateExtension'));
  328. }
  329. $form -> setDefaults($defaults);
  330. $form -> display();
  331. ?>
  332. </form>
  333. </td>
  334. </tr>
  335. </table>
  336. </div>
  337. </div>
  338. <!-- EPHORUS -->
  339. <div id="main_ephorus">
  340. <div id="extension_header_ephorus" class="accordion_header">
  341. <a href="#"><?php echo get_lang('EphorusPlagiarismPrevention') ?></a>
  342. </div>
  343. <div id="extension_content_ephorus" style="display:none;padding:0;width:780px;" class="accordion_content">
  344. <table width="100%" cellpadding="0" cellspacing="0">
  345. <tr>
  346. <td align="center">
  347. <TABLE style="WIDTH: 750px" cellSpacing="0" cellPadding="0" align="middle" border="0">
  348. <TBODY>
  349. <TR>
  350. <TD>
  351. <TABLE style="WIDTH: 475px" cellSpacing="0" cellPadding="0" border="0">
  352. <TBODY>
  353. <TR>
  354. <TD>
  355. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
  356. <A title="http://www.ephorus.com/dokeos_activate.html" href="http://www.ephorus.com/dokeos_activate.html" target="_blank">
  357. <IMG style="WIDTH: 235px; HEIGHT: 78px" height="66" alt="Ephorus" hspace="3" src="<?php echo api_get_path(WEB_IMG_PATH).'ephorus.gif' ?>" width="213" vspace="1" border="0">
  358. </A>
  359. </TD>
  360. <TD>
  361. <P align=center>
  362. <FONT color="#669966" size="3"><?php echo get_lang('EphorusLeadersInAntiPlagiarism') ?></FONT>
  363. </P>
  364. </TD>
  365. </TR>
  366. </TBODY>
  367. </TABLE>
  368. </TD>
  369. </TR>
  370. <TR>
  371. <TD>
  372. <P>
  373. <TABLE style="WIDTH: 85%" cellSpacing="0" cellPadding="0" border="0">
  374. <TBODY>
  375. <TR>
  376. <TD width="50">
  377. &nbsp;
  378. </TD>
  379. <TD>
  380. <P>
  381. <?php echo get_lang('EphorusDescription') ?>
  382. </P>
  383. <P>
  384. <A title="http://www.ephorus.nl/demo_account_en.html" href="http://www.ephorus.nl/demo_account_en.html" target="_blank"><?php echo get_lang('EphorusClickHereForADemoAccount') ?></A>
  385. </P>
  386. <P>
  387. <A title="http://www.ephorus.nl:80/dokeos_activate.html" href="http://www.ephorus.nl/dokeos_activate.html" target="_blank"><?php echo get_lang('EphorusClickHereForInformationsAndPrices') ?></A>.
  388. </P>
  389. </TD>
  390. </TR>
  391. </TBODY>
  392. </TABLE>
  393. </P>
  394. </TD>
  395. </TR>
  396. </TBODY>
  397. </TABLE>
  398. </td>
  399. </tr>
  400. </table>
  401. </div>
  402. </div>
  403. <!-- SEARCH -->
  404. <div id="main_search">
  405. <div id="extension_header_search" class="accordion_header">
  406. <a href="#"><?php echo get_lang('SearchEngine') ?></a>
  407. </div>
  408. <div id="extension_content_search" style="display:none" class="accordion_content">
  409. <?php echo get_lang('SearchEngineDescription') ?><br /><br />
  410. <table width="100%">
  411. <tr>
  412. <td width="50%">
  413. <img src="<?php echo api_get_path(WEB_IMG_PATH).'screenshot_search.jpg' ?>" />
  414. </td>
  415. <td align="center" width="50%">
  416. <form method="POST" action="<?php echo api_get_self(); ?>">
  417. <input type="hidden" name="extension_code" value="search" />
  418. <input type="submit" name="activeExtension" value="<?php echo get_lang('ActivateExtension') ?>" />
  419. </form>
  420. </td>
  421. </tr>
  422. </table>
  423. </div>
  424. </div>
  425. <!-- SERVER STATS -->
  426. <div id="main_serverstats">
  427. <div id="extension_header_serverstats" class="accordion_header">
  428. <a href="#"><?php echo get_lang('ServerStatistics') ?></a>
  429. </div>
  430. <div id="extension_content_serverstats" style="display:none" class="accordion_content">
  431. <?php echo get_lang('ServerStatisticsDescription') ?><br /><br />
  432. <table width="100%">
  433. <tr>
  434. <td width="50%">
  435. <img src="<?php echo api_get_path(WEB_IMG_PATH).'screenshot_serverstats.jpg' ?>" />
  436. </td>
  437. <td align="center" width="50%">
  438. <form method="POST" action="<?php echo api_get_self(); ?>">
  439. <input type="hidden" name="extension_code" value="serverstats" />
  440. <input type="submit" name="activeExtension" value="<?php echo get_lang('ActivateExtension') ?>" />
  441. </form>
  442. </td>
  443. </tr>
  444. </table>
  445. </div>
  446. </div>
  447. <!-- BANDWIDTH STATS -->
  448. <div id="main_bandwidthstats">
  449. <div id="extension_header_bandwidthstats" class="accordion_header">
  450. <a href="#"><?php echo get_lang('BandWidthStatistics') ?></a>
  451. </div>
  452. <div id="extension_content_bandwidthstats" style="display:none" class="accordion_content">
  453. <?php echo get_lang('BandWidthStatisticsDescription') ?><br /><br />
  454. <table width="100%">
  455. <tr>
  456. <td width="50%">
  457. <img src="<?php echo api_get_path(WEB_IMG_PATH).'screenshot_bandwidth.jpg' ?>" />
  458. </td>
  459. <td align="center" width="50%">
  460. <form method="POST" action="<?php echo api_get_self(); ?>">
  461. <input type="hidden" name="extension_code" value="bandwidthstats" />
  462. <input type="submit" name="activeExtension" value="<?php echo get_lang('ActivateExtension') ?>" />
  463. </form>
  464. </td>
  465. </tr>
  466. </table>
  467. </div>
  468. </div>
  469. </div><!-- /content -->
  470. <?php
  471. /*
  472. ==============================================================================
  473. FOOTER
  474. ==============================================================================
  475. */
  476. Display::display_footer();
  477. ?>