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); }
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); }