예제 #1
0
 function servers_list_to_games_list($servers_list = array())
 {
     $CI =& get_instance();
     $CI->load->model('servers/games');
     $games_list = $CI->games->tpl_data_games();
     foreach ($servers_list as $server) {
         $gs_data = array('server_id' => $server['id'], 'server_name' => $server['name'], 'server_game' => $server['game'], 'server_ip' => $server['server_ip'], 'server_port' => $server['server_port']);
         $games_list = game_server_insert($gs_data, $games_list);
     }
     return clean_games_list($games_list);
 }
예제 #2
0
 public function index()
 {
     $this->load->helper('form');
     /* Загрузка модели управления игровыми серверами*/
     $this->load->model('servers');
     $this->load->helper('games');
     $this->load->model('servers/games');
     $local_tpl = array();
     $this->games->get_active_games_list();
     $local_tpl['games_list'] = $this->games->tpl_data_games();
     $filter = $this->users->get_filter('servers_list');
     $local_tpl += $this->_get_tpl_filter($filter);
     $this->servers->set_filter($filter);
     /* Если количество серверов больше 0 */
     if ($this->servers->get_servers_list($this->users->auth_id)) {
         $num = 0;
         foreach ($this->servers->servers_list as $this->server_data) {
             $server_commands = '';
             $num++;
             /* Получение id игры в массиве */
             $i = 0;
             $count = count($this->games->games_list);
             while ($i < $count) {
                 if ($this->server_data['game'] == $this->games->games_list[$i]['code']) {
                     $game_arr_id = $i;
                     break;
                 }
                 $i++;
             }
             $template = !isset($this->config->config['template']) ? 'default' : $this->config->config['template'];
             $style = !isset($this->config->config['style']) ? 'default' : $this->config->config['style'];
             /* Проверка привилегий на сервер */
             $this->users->get_server_privileges($this->server_data['id']);
             /* Строка с привилегиями на сервер для вставки в содержимое javascript 
             			 * Т.к. статус сервера подгружается при помощи AJAX, кнопки также подгружаются 
             			 * при помощи AJAX в зависимости от статуса, но на некоторые действия
             			 * у пользователя может не быть прав (например, перезапуск).
             			 * Следующие данные вставляют данные в массив privileges для javascript, чтобы можно было отображать
             			 * только доступные пользователю кнопки.
             			 * 
             			 * privileges['start_3'], где start - привилегия, 3 - id сервера
             			 * 
             			 * В шаблон следует вставлять тег {server_js_privileges}, он должен располагаться между {servers_list} и {/servers_list}
             			 * 
             			 * В исходном коде страницы будет примерно следующее:
             			 * privileges['start_2'] = 1;privileges['stop_2'] = 0;privileges['restart_2'] = 1;
             			 * 
             			 * После этого в javascript можно сделать проверки, например
             			 * 
             			   if (privileges['stop_' + server_id] == 1) {
             					$("#stop_privilege").append("Остановка сервера разрешена");
             				}
             			 * 
             			*/
             $js_privileges = '';
             $js_privileges .= 'privileges[\'start_' . $this->server_data['id'] . '\'] = ' . (int) (bool) ($this->users->auth_privileges['srv_start'] && $this->users->auth_servers_privileges['SERVER_START']) . ';';
             $js_privileges .= 'privileges[\'stop_' . $this->server_data['id'] . '\'] = ' . (int) (bool) ($this->users->auth_privileges['srv_stop'] && $this->users->auth_servers_privileges['SERVER_STOP']) . ';';
             $js_privileges .= 'privileges[\'restart_' . $this->server_data['id'] . '\'] = ' . (int) (bool) ($this->users->auth_privileges['srv_restart'] && $this->users->auth_servers_privileges['SERVER_RESTART']) . ';';
             $this->server_data['expires'] = (int) $this->server_data['expires'];
             $gs_data = array('server_id' => $this->server_data['id'], 'server_name' => $this->server_data['name'], 'server_game' => $this->server_data['game'], 'server_ip' => $this->server_data['server_ip'] . ':' . $this->server_data['server_port'], 'server_expires' => date('d.m.Y', $this->server_data['expires']), 'server_js_privileges' => $js_privileges, 'commands' => $server_commands);
             // Вставляем данные сервера в массив
             $local_tpl['games_list'] = game_server_insert($gs_data, $local_tpl['games_list']);
         }
         $local_tpl['games_list'] = clean_games_list($local_tpl['games_list']);
     } else {
         $local_tpl['games_list'] = array();
     }
     $this->tpl_data['content'] = $this->parser->parse('servers/servers_list_main.html', $local_tpl, true);
     $this->parser->parse('main.html', $this->tpl_data);
 }