function lgsl_server_html($server, $word_wrap = 20) { foreach ($server as $key => $value) { $server[$key] = is_array($value) ? lgsl_server_html($value, $word_wrap) : lgsl_string_html($value, FALSE, $word_wrap); } return $server; }
// REMOVED $fields_other = TRUE; // FALSE TO ONLY SHOW FIELDS IN $fields_show //------------------------------------------------------------------------------------------------------------+ // GET THE SERVER DETAILS AND PREPARE IT FOR DISPLAY global $lgsl_server_id; $server = lgsl_query_cached("", "", "", "", "", "sep", $lgsl_server_id); if (!$server) { $output .= "<div style='margin:auto; text-align:center'> {$lgsl_config['text']['mid']} </div>"; return; } $fields = lgsl_sort_fields($server, $fields_show, $fields_hide, $fields_other); $server = lgsl_sort_players($server); $server = lgsl_sort_extras($server); $misc = lgsl_server_misc($server); $server = lgsl_server_html($server); //------------------------------------------------------------------------------------------------------------+ $output .= "\r\n <div style='margin:auto; text-align:center'>"; $output .= "\r\n <div style='" . lgsl_bg(TRUE) . "; width:90%; margin:auto; text-align:center; height:6px; border:1px solid'><br /></div>\r\n <div style='height:10px'><br /></div>"; //------------------------------------------------------------------------------------------------------------+ // SHOW THE STANDARD INFO $output .= "\r\n <table cellpadding='2' cellspacing='2' style='margin:auto'>\r\n <tr>\r\n <td colspan='3' style='text-align:center'>\r\n <b> {$server['s']['name']} </b><br /><br />\r\n </td>\r\n </tr>\r\n </table>\r\n <table cellpadding='2' cellspacing='2' style='margin:auto'>\r\n <tr>\r\n <td colspan='2' style='text-align:center'>\r\n <table cellpadding='4' cellspacing='2' style='width:100%; margin:auto'>\r\n <tr><td style='" . lgsl_bg(TRUE) . "; text-align:center'><a href='{$misc['software_link']}'>{$lgsl_config['text']['slk']}</a></td></tr>\r\n </table>\r\n </td>\r\n <td rowspan='2' style='text-align:center; vertical-align:top'>\r\n <div style='width:{$lgsl_config['zone']['width']}px; padding:2px; position:relative; margin:auto'>\r\n <img alt='' src='{$misc['image_map']}' style='vertical-align:middle' />\r\n <img alt='' src='{$misc['image_map_password']}' style='position:absolute; z-index:2; top:0px; left:0px;' />\r\n <img alt='' src='{$misc['icon_game']}' title='{$misc['text_type_game']}' style='position:absolute; z-index:2; top:6px; left:6px;' />\r\n <img alt='' src='{$misc['icon_location']}' title='{$misc['text_location']}' style='position:absolute; z-index:2; top:6px; right:6px;' />\r\n </div>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td style='text-align:center'>\r\n <table cellpadding='4' cellspacing='2' style='margin:auto'>\r\n <tr style='" . lgsl_bg() . ";white-space:nowrap'><td> <b> {$lgsl_config['text']['sts']} </b></td><td style='white-space:nowrap'> {$misc['text_status']} </td></tr>\r\n <tr style='" . lgsl_bg() . ";white-space:nowrap'><td> <b> {$lgsl_config['text']['adr']} </b></td><td style='white-space:nowrap'> {$server['b']['ip']} </td></tr>\r\n <tr style='" . lgsl_bg() . ";white-space:nowrap'><td> <b> {$lgsl_config['text']['cpt']} </b></td><td style='white-space:nowrap'> {$server['b']['c_port']} </td></tr>\r\n <tr style='" . lgsl_bg() . ";white-space:nowrap'><td> <b> {$lgsl_config['text']['qpt']} </b></td><td style='white-space:nowrap'> {$server['b']['q_port']} </td></tr>\r\n </table>\r\n </td>\r\n <td style='text-align:center'>\r\n <table cellpadding='4' cellspacing='2' style='margin:auto'>\r\n <tr style='" . lgsl_bg() . ";white-space:nowrap'><td> <b> {$lgsl_config['text']['typ']} </b></td><td style='white-space:nowrap'> {$server['b']['type']} </td></tr>\r\n <tr style='" . lgsl_bg() . ";white-space:nowrap'><td> <b> {$lgsl_config['text']['gme']} </b></td><td style='white-space:nowrap'> {$server['s']['game']} </td></tr>\r\n <tr style='" . lgsl_bg() . ";white-space:nowrap'><td> <b> {$lgsl_config['text']['map']} </b></td><td style='white-space:nowrap'> {$server['s']['map']} </td></tr>\r\n <tr style='" . lgsl_bg() . ";white-space:nowrap'><td> <b> {$lgsl_config['text']['plr']} </b></td><td style='white-space:nowrap'> {$server['s']['players']} / {$server['s']['playersmax']} </td></tr>\r\n </table>\r\n </td>\r\n </tr>\r\n </table>"; //------------------------------------------------------------------------------------------------------------+ $output .= "\r\n <div style='height:10px'><br /></div>\r\n <div style='" . lgsl_bg(TRUE) . "; width:90%; margin:auto; text-align:center; height:6px; border:1px solid'><br /></div>\r\n <div style='height:10px'><br /></div>"; //------------------------------------------------------------------------------------------------------------+ // SHOW THE PLAYERS $output .= "\r\n <div style='margin:auto; overflow:auto; text-align:center; padding:10px'>"; if (empty($server['p']) || !is_array($server['p'])) { $output .= "\r\n <table cellpadding='4' cellspacing='2' style='margin:auto'>\r\n <tr style='" . lgsl_bg(FALSE) . "'>\r\n <td> {$lgsl_config['text']['npi']} </td>\r\n </tr>\r\n </table>"; } else { $output .= "\r\n <table cellpadding='4' cellspacing='2' style='margin:auto'>\r\n <tr style='" . lgsl_bg(FALSE) . "'>";
function server($id = 0) { global $db, $player_field_list; update_server_cache(); if ($id) { $result = $db->query('SELECT * FROM ' . DB_PRE . 'ecp_server WHERE aktiv = 1 AND serverID = ' . $id); } else { $result = $db->query('SELECT * FROM ' . DB_PRE . 'ecp_server WHERE aktiv = 1 ORDER BY posi ASC'); } if ($db->num_rows()) { $server = array(); while ($row = mysql_fetch_assoc($result)) { $spe = array(); $data = lgsl_server_html(unserialize($row['response'])); $tpl = new smarty(); if ($row['stat']) { $tpl->assign('serverstats', true); } if ($data['b']['status'] == 0) { $tpl->assign('image', 'templates/' . DESIGN . '/images/map_no_response.jpg'); } else { if (file_exists('images/server/maps/' . $row['gametype'] . '/' . $data['s']['game'] . '/' . strtolower(str_replace(' ', '_', $data['s']['map'])) . '.jpg')) { $tpl->assign('image', 'images/server/maps/' . $row['gametype'] . '/' . $data['s']['game'] . '/' . strtolower(str_replace(' ', '_', $data['s']['map'])) . '.jpg'); } else { $tpl->assign('image', 'templates/' . DESIGN . '/images/map_no_image.jpg'); } } $tpl->assign('nextupdate', $row['datum'] + SERVER_CACHE_REFRESH - time() . ' ' . SECONDS); $row['datum'] = date('d.m.Y H:i:s', $row['datum']); $speicher = '<select size="1" name="settings">'; foreach ($row as $key => $value) { $tpl->assign($key, $value); } foreach ($data['e'] as $key => $value) { $tpl->assign($key, $value); $speicher .= "<option>{$key} => " . check_str_length($value, 40) . "</option>"; } foreach ($data['s'] as $key => $value) { $tpl->assign($key, $value); } $tpl->assign('settings', $speicher . '</select>'); if ($row['gametype'] == 'halflife' or $row['gametype'] == 'source') { if (isset($data['e']['cm_nextmap'])) { $tpl->assign('nextmap', '(' . SERVER_NEXT_MAP . ': ' . $data['e']['cm_nextmap'] . ')'); } elseif (isset($data['e']['amx_nextmap'])) { $tpl->assign('nextmap', '(' . SERVER_NEXT_MAP . ': ' . $data['e']['amx_nextmap'] . ')'); } elseif (isset($data['e']['mani_nextmap'])) { $tpl->assign('nextmap', '(' . SERVER_NEXT_MAP . ': ' . $data['e']['mani_nextmap'] . ')'); } if (isset($data['e']['cm_timeleft'])) { $tpl->assign('timeleft', '(' . SERVER_TIME_LEFT . ': ' . $data['e']['cm_timeleft'] . ')'); } elseif (isset($data['e']['amx_timeleft'])) { $tpl->assign('timeleft', '(' . SERVER_TIME_LEFT . ': ' . $data['e']['amx_timeleft'] . ')'); } $tpl->assign('plys', order_players($data['p'])); $tpl->assign('lang', $player_field_list); ob_start(); //echo 'images/server/maps/'.$row['gametype'].'/'.$data['s']['game'].'/'.strtolower(str_replace(' ', '_',$data['s']['map'])).'.jpg'; $tpl->display(DESIGN . '/tpl/server/halflife.html'); $content = ob_get_contents() . '</div>'; ob_end_clean(); } else { ob_start(); //echo 'images/server/maps/'.$row['gametype'].'/'.$data['s']['game'].'/'.strtolower(str_replace(' ', '_',$data['s']['map'])).'.jpg'; $tpl->display(DESIGN . '/tpl/server/other.html'); $output = ob_get_contents(); ob_end_clean(); error_reporting(1); $data['p'] = order_players($data['p']); if (!$data['p']) { @($output .= "\r\n\t\t\t\t <table cellpadding='4' cellspacing='2' style='margin:auto'>\r\n\t\t\t\t <tr>\r\n\t\t\t\t <td> " . SERVER_NO_PLAYERS . " </td>\r\n\t\t\t\t </tr>\r\n\t\t\t\t </table>\r\n\t\t\t\t\r\n\t\t\t\t <div style='height:20px'><br /></div>"); } else { $used_field_list = array(); foreach ($player_field_list as $field => $title) { foreach ($data['p'] as $player) { if (isset($player[$field])) { $used_field_list[$field] = $title; } } } @($output .= "\r\n\t\t\t\t <table cellpadding='1' cellspacing='1' style='width:100%;margin:auto'>\r\n\t\t\t\t <tr style=''>"); foreach ($used_field_list as $field => $title) { $output .= "\r\n\t\t\t\t <td> <b>{$title}</b> </td>"; } $output .= "\r\n\t\t\t\t </tr>"; $i = 0; foreach ($data['p'] as $player_key => $player) { $output .= "\r\n\t\t\t\t <tr class='" . (++$i % 2 ? 'row_odd' : 'row_even') . "'>"; foreach ($used_field_list as $field => $title) { $output .= "<td> {$player[$field]} </td>"; } $output .= "\r\n\t\t\t\t </tr>"; } $output .= "\r\n\t\t\t\t </table>\r\n\t\t\t\t\r\n\t\t\t\t <div style='height:20px'><br /></div>"; } error_reporting(E_ALL); $content = $output . '</div>'; } $spe['headline'] = $data['b']['status'] == 0 ? $row['ip'] . ':' . $row['port'] . ' ' . SERVER_OFFLINE : $data['s']['name']; $spe['content'] = $content; $server[] = $spe; } if (@$_GET['ajax']) { ob_end_clean(); echo html_ajax_convert($content); die; } else { $tpl = new smarty(); $tpl->assign('server', $server); ob_start(); $tpl->display(DESIGN . '/tpl/server/overview.html'); $content = ob_get_contents(); ob_end_clean(); main_content(SERVER, $content, '', 1); } } else { table(INFO, NO_ENTRIES); } }