Example #1
0
 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;
 }
Example #2
0
// 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) . "'>";
Example #3
0
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);
    }
}