configure_extensions.php 18 KB

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