manage.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <?php
  2. $cidReset = true;
  3. require_once '../../../main/inc/global.inc.php';
  4. require_once api_get_path(SYS_PLUGIN_PATH).'vchamilo/lib.php';
  5. require_once api_get_path(SYS_PLUGIN_PATH).'vchamilo/lib/vchamilo_plugin.class.php';
  6. // security
  7. api_protect_admin_script();
  8. $action = isset($_GET['what']) ? $_GET['what'] : '';
  9. define('CHAMILO_INTERNAL', true);
  10. $plugininstance = VChamiloPlugin::create();
  11. $thisurl = api_get_path(WEB_PLUGIN_PATH).'vchamilo/views/manage.php';
  12. require_js('host_list.js', 'vchamilo');
  13. if ($action) {
  14. require_once api_get_path(SYS_PLUGIN_PATH).'vchamilo/views/manage.controller.php';
  15. }
  16. $query = "SELECT * FROM vchamilo";
  17. $result = Database::query($query);
  18. $instances = array();
  19. while ($instance = Database::fetch_object($result)) {
  20. $instances[$instance->id] = $instance;
  21. }
  22. $templates = vchamilo_get_available_templates(false);
  23. if (empty($templates)) {
  24. $url = api_get_path(WEB_PLUGIN_PATH).'vchamilo/views/manage.php?what=snapshotinstance';
  25. $url = Display::url($url, $url);
  26. Display::addFlash(
  27. Display::return_message('You need to create a snapshot of master first here:'.$url, 'info', false)
  28. );
  29. }
  30. $table = new HTML_Table(array('class' => 'data_table'));
  31. $column = 0;
  32. $row = 0;
  33. // $table->set_additional_parameters($parameters);
  34. $headers = array(
  35. '',
  36. $plugininstance->get_lang('sitename'),
  37. $plugininstance->get_lang('institution'),
  38. $plugininstance->get_lang('dbhost').' - '.get_lang('Database'),
  39. $plugininstance->get_lang('coursefolder'),
  40. $plugininstance->get_lang('enabled'),
  41. $plugininstance->get_lang('lastcron'),
  42. '',
  43. );
  44. $attrs = array('center' => 'left');
  45. $table->addRow($headers, $attrs, 'th');
  46. $i = 0;
  47. foreach ($instances as $instance) {
  48. $checkbox = '<input type="checkbox" class="vnodessel" name="vids[]" value="'.$instance->id.'" />';
  49. //$sitelink = '<a href="'.$instance->root_web.'" target="_blank">'.$instance->sitename.'</a>';
  50. $sitelink = $instance->sitename;
  51. if ($instance->visible) {
  52. $status = '<a href="'.$thisurl.'?what=disableinstances&vids[]='.$instance->id.'" >
  53. <img src="'.$plugininstance->pix_url('enabled').'" /></a>';
  54. } else {
  55. $status = '<a href="'.$thisurl.'?what=enableinstances&vids[]='.$instance->id.'" >
  56. <img src="'.$plugininstance->pix_url('disabled').'" /></a>';
  57. }
  58. $cmd = '&nbsp;<a href="'.$thisurl.'?what=editinstance&vid='.$instance->id.'" title="'.$plugininstance->get_lang('edit').'">
  59. <img src="'.$plugininstance->pix_url('edit').'" /></a>';
  60. $cmd .= '&nbsp;<a href="'.$thisurl.'?what=snapshotinstance&vid='.$instance->id.'" title="'.$plugininstance->get_lang('snapshotinstance').'">
  61. <img src="'.$plugininstance->pix_url('snapshot').'" /></a>';
  62. if (!$instance->visible) {
  63. $cmd .= '<a href="'.$thisurl.'?what=fulldeleteinstances&vids[]='.$instance->id.'" title="'.$plugininstance->get_lang('destroyinstances').'">
  64. <img src="'.$plugininstance->pix_url('delete').'" /></a>';
  65. } else {
  66. $cmd .= '<a href="'.$thisurl.'?what=deleteinstances&vids[]='.$instance->id.'" title="'.$plugininstance->get_lang('deleteinstances').'">
  67. <img src="'.$plugininstance->pix_url('delete').'" /></a>';
  68. }
  69. $crondate = ($instance->lastcron) ? date('r', $instance->lastcron) : '';
  70. $data = array(
  71. $checkbox,
  72. $sitelink.' ('.Display::url($instance->root_web, $instance->root_web).')',
  73. $instance->institution,
  74. $instance->db_host.' - '.$instance->main_database,
  75. $instance->slug,
  76. $status,
  77. $crondate,
  78. $cmd,
  79. );
  80. $attrs = array('center' => 'left');
  81. $table->addRow($data, $attrs, 'td');
  82. $i++;
  83. }
  84. $items = [
  85. [
  86. 'url' => $thisurl.'?what=newinstance',
  87. 'content' => $plugininstance->get_lang('newinstance')
  88. ],
  89. [
  90. 'url' => $thisurl.'?what=instance&registeronly=1',
  91. 'content' => $plugininstance->get_lang('registerinstance')
  92. ],
  93. [
  94. 'url' => $thisurl.'?what=snapshotinstance&vid=0',
  95. 'content' => $plugininstance->get_lang('snapshotmaster')
  96. ],
  97. [
  98. 'url' => $thisurl.'?what=clearcache&vid=0',
  99. 'content' => $plugininstance->get_lang('clearmastercache')
  100. ],
  101. [
  102. 'url' => api_get_path(WEB_PLUGIN_PATH).'vchamilo/views/syncparams.php',
  103. 'content' => $plugininstance->get_lang('sync_settings')
  104. ],
  105. [
  106. 'url' => api_get_path(WEB_CODE_PATH).'admin/configure_plugin.php?name=vchamilo',
  107. 'content' => get_lang('Settings')
  108. ]
  109. ];
  110. $content = Display::page_header('VChamilo Instances');
  111. $content .= Display::actions($items);
  112. $content .= '<form action="'.$thisurl.'">';
  113. $content .= $table->toHtml();
  114. $selectionoptions = array('<option value="0" selected="selected">'.$plugininstance->get_lang('choose').'</option>');
  115. $selectionoptions[] = '<option value="deleteinstances">'.$plugininstance->get_lang('deleteinstances').'</option>';
  116. $selectionoptions[] = '<option value="enableinstances">'.$plugininstance->get_lang('enableinstances').'</option>';
  117. $selectionoptions[] = '<option value="fulldeleteinstances">'.$plugininstance->get_lang(
  118. 'destroyinstances'
  119. ).'</option>';
  120. $selectionoptions[] = '<option value="clearcache">'.$plugininstance->get_lang('clearcache').'</option>';
  121. $selectionoptions[] = '<option value="setconfigvalue">'.$plugininstance->get_lang('setconfigvalue').'</option>';
  122. $selectionaction = '<select name="what" onchange="this.form.submit()">'.implode('', $selectionoptions).'</select>';
  123. $content .= '<div class"vchamilo-right"><div></div><div>
  124. <a href="javascript:selectallhosts()">'.$plugininstance->get_lang('selectall').'</a> -
  125. <a href="javascript:deselectallhosts()">'.$plugininstance->get_lang('selectnone').'</a> -
  126. &nbsp; - '.$plugininstance->get_lang('withselection').' '.$selectionaction.'</div></div>';
  127. $content .= '</form>';
  128. if (empty($templates)) {
  129. $content = '';
  130. }
  131. $tpl = new Template(get_lang('VChamilo'), true, true, false, true, false);
  132. $tpl->assign('content', $content);
  133. $tpl->display_one_col_template();