configure_extensions.php 17 KB

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