updmp.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. if (!DEFINED('EGP'))
  3. exit(header('Refresh: 0; URL=http://' . $_SERVER['SERVER_NAME'] . '/404'));
  4. if (isset($url['get']) and $url['get'] == 'list') {
  5. $unit = isset($url['unit']) ? sys::int($url['unit']) : sys::out();
  6. $game = isset($url['game']) ? $url['game'] : sys::out();
  7. if (!in_array($game, array('cs', 'cssold', 'css', 'csgo')))
  8. sys::out();
  9. $maps = '';
  10. $sql->query('SELECT `name` FROM `maps` WHERE `unit`="' . $unit . '" AND `game`="' . $game . '" ORDER BY `id` ASC');
  11. $all = 'Общее число карт: ' . $sql->num() . ' шт.' . PHP_EOL;
  12. while ($map = $sql->get())
  13. $maps .= $map['name'] . PHP_EOL;
  14. $maps = $maps == '' ? 'В базе нет карт' : $all . $maps . $all;
  15. sys::out($maps);
  16. }
  17. if ($go) {
  18. $unit = isset($url['unit']) ? sys::int($url['unit']) : sys::outjs(array('e' => 'Необходимо выбрать локацию'));
  19. $game = isset($url['game']) ? $url['game'] : sys::outjs(array('e' => 'Необходимо выбрать игру'));
  20. if (!$unit)
  21. sys::outjs(array('e' => 'Необходимо выбрать локацию'));
  22. if (!in_array($game, array('cs', 'cssold', 'css', 'csgo')))
  23. sys::outjs(array('e' => 'Необходимо выбрать игру'));
  24. include(LIB . 'ssh.php');
  25. $sql->query('SELECT `id`, `passwd`, `address` FROM `units` WHERE `id`="' . $unit . '" LIMIT 1');
  26. if (!$sql->num())
  27. sys::outjs(array('e' => 'Локация не найдена'));
  28. $unit = $sql->get();
  29. if (!$ssh->auth($unit['passwd'], $unit['address']))
  30. sys::outjs(array('e' => 'Не удалось создать связь с локацией'));
  31. $sql->query('DELETE FROM `maps` WHERE `unit`="' . $unit['id'] . '" AND `game`="' . $game . '"');
  32. $maps = $ssh->get('cd /path/maps/' . $game . ' && ls | grep .bsp | grep -v .bsp.');
  33. $aMaps = explode("\n", $maps);
  34. array_pop($aMaps);
  35. foreach ($aMaps as $map) {
  36. $name = array_shift(explode('.', $map));
  37. $sql->query('INSERT INTO `maps` set `unit`="' . $unit['id'] . '", `game`="' . $game . '", `name`="' . $name . '"');
  38. }
  39. sys::outjs(array('s' => 'ok'));
  40. }
  41. $units = '';
  42. $sql->query('SELECT `id`, `name` FROM `units` ORDER BY `id` ASC');
  43. while ($unit = $sql->get())
  44. $units .= '<option value="' . $unit['id'] . '">' . $unit['name'] . '</option>';
  45. $html->get('updmp', 'sections/addons');
  46. $html->set('units', $units);
  47. $html->pack('main');
  48. ?>