plugin.php 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. if(!DEFINED('EGP'))
  3. exit(header('Refresh: 0; URL=http://'.$_SERVER['SERVER_NAME'].'/404'));
  4. $pid = isset($url['plugin']) ? sys::int($url['plugin']) : sys::back($cfg['http'].'control/id/'.$id.'/server/'.$sid.'/section/plugins');
  5. $sql->query('SELECT `id`, `upd` FROM `control_plugins_install` WHERE `server`="'.$sid.'" AND `plugin`="'.$pid.'" LIMIT 1');
  6. if(!$sql->num())
  7. sys::back($cfg['http'].'control/id/'.$id.'/server/'.$sid.'/section/plugins');
  8. $install = $sql->get();
  9. // Если установленно обновление
  10. if($install['upd'])
  11. $sql->query('SELECT `name`, `info`, `images`, `upd` FROM `plugins_update` WHERE `id`="'.$install['upd'].'" LIMIT 1');
  12. else
  13. $sql->query('SELECT `name`, `info`, `images`, `upd` FROM `plugins` WHERE `id`="'.$pid.'" LIMIT 1');
  14. if(!$sql->num())
  15. sys::back($cfg['http'].'control/id/'.$id.'/server/'.$sid.'/section/plugins');
  16. $plugin = $sql->get();
  17. $html->nav('Плагины', $cfg['http'].'control/id/'.$id.'/server/'.$sid.'/section/plugins');
  18. $html->nav($plugin['name']);
  19. // Если есть кеш
  20. if($mcache->get('ctrl_server_plugin_'.$pid.$sid) != '')
  21. $html->arr['main'] = $mcache->get('ctrl_server_plugin_'.$pid.$sid);
  22. else{
  23. include(LIB.'control/plugins.php');
  24. // Построение списка редактируемых файлов
  25. $aConf = array();
  26. $sql->query('SELECT `id`, `file` FROM `plugins_config` WHERE (`plugin`="'.$pid.'" AND `update`="0") OR (`plugin`="'.$pid.'" AND `update`="'.$install['upd'].'") ORDER BY `sort`, `id` ASC');
  27. while($config = $sql->get())
  28. {
  29. // Исключить дублирование, путем проверки массива файлов
  30. if(in_array($config['file'], $aConf))
  31. continue;
  32. $aConf[] = $config['file'];
  33. // Данные файла
  34. $file = explode('/', $config['file']);
  35. $html->get('config_list', 'sections/control/servers/games/plugins');
  36. $html->set('id', $id);
  37. $html->set('server', $sid);
  38. $html->set('fid', $config['id']);
  39. $html->set('name', end($file));
  40. $html->set('file', $config['file']);
  41. $html->pack('configs');
  42. }
  43. $images = plugins::images($plugin['images'], $pid);
  44. $html->get('configs', 'sections/control/servers/games/plugins');
  45. $html->set('id', $id);
  46. $html->set('server', $sid);
  47. $html->set('name', $plugin['name']);
  48. $html->set('info', htmlspecialchars_decode($plugin['info']));
  49. // Картинки
  50. if(!empty($images))
  51. {
  52. $html->unit('images', 1);
  53. $html->set('images', $images);
  54. }else
  55. $html->unit('images');
  56. // Редактируемые файлы
  57. if(isset($html->arr['configs']))
  58. {
  59. $html->set('configs', $html->arr['configs']);
  60. $html->unit('configs', 1);
  61. }else
  62. $html->unit('configs');
  63. $html->pack('main');
  64. $mcache->set('ctrl_server_plugin_'.$pid.$sid, $html->arr['main'], false, 60);
  65. }
  66. ?>