Код
<?php
/*----------------------------------------------------------------------------------------------------------\
| |
| [ LIVE GAME SERVER LIST ] [ © RICHARD PERRY FROM GREYCUBE.COM ] |
| |
| Released under the terms and conditions of the GNU General Public License Version 3 (http://gnu.org) |
| |
\-----------------------------------------------------------------------------------------------------------*/
//------------------------------------------------------------------------------------------------------------+
require "lgsl_class.php";
$server_list = lgsl_query_group();
$server_list = lgsl_sort_servers($server_list);
//------------------------------------------------------------------------------------------------------------+
$output .= "
<script type=\"text/javascript\" src=\"{$siteurl}lgsl/lgsl_files/facebox/facebox.js\"></script>
<script type=\"text/javascript\">
$.noConflict();
</script>
<style type='text/css'>
.progress {
height: 20px;
width: 100%;
margin-bottom: 20px;
overflow: hidden;
background-color: #F7F7F7;
background-image: -moz-linear-gradient(top,#F5F5F5,#F9F9F9);
background-image: -webkit-gradient(linear,0 0,0 100%,from(#F5F5F5),to(#F9F9F9));
background-image: -webkit-linear-gradient(top,#F5F5F5,#F9F9F9);
background-image: -o-linear-gradient(top,#F5F5F5,#F9F9F9);
background-image: linear-gradient(to bottom,#F5F5F5,#F9F9F9);
background-repeat: repeat-x;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5',endColorstr='#fff9f9f9',GradientType=0);
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}
.progress-warning.progress-striped .bar, .progress-striped .bar-warning {
background-image: -webkit-gradient(linear,0 100%,100% 0,color-stop(0.25,rgba(255, 255, 255, 0.15)),color-stop(0.25,rgba(0, 0, 0, 0)),color-stop(0.5,rgba(0, 0, 0, 0)),color-stop(0.5,rgba(255, 255, 255, 0.15)),color-stop(0.75,rgba(255, 255, 255, 0.15)),color-stop(0.75,rgba(0, 0, 0, 0)),to(rgba(0, 0, 0, 0)));
background-image: -webkit-linear-gradient(45deg,rgba(255, 255, 255, 0.15) 25%,rgba(0, 0, 0, 0) 25%,rgba(0, 0, 0, 0) 50%,rgba(255, 255, 255, 0.15) 50%,rgba(255, 255, 255, 0.15) 75%,rgba(0, 0, 0, 0) 75%,rgba(0, 0, 0, 0));
background-image: -moz-linear-gradient(45deg,rgba(255, 255, 255, 0.15) 25%,rgba(0, 0, 0, 0) 25%,rgba(0, 0, 0, 0) 50%,rgba(255, 255, 255, 0.15) 50%,rgba(255, 255, 255, 0.15) 75%,rgba(0, 0, 0, 0) 75%,rgba(0, 0, 0, 0));
background-image: -o-linear-gradient(45deg,rgba(255, 255, 255, 0.15) 25%,rgba(0, 0, 0, 0) 25%,rgba(0, 0, 0, 0) 50%,rgba(255, 255, 255, 0.15) 50%,rgba(255, 255, 255, 0.15) 75%,rgba(0, 0, 0, 0) 75%,rgba(0, 0, 0, 0));
background-image: linear-gradient(45deg,rgba(255, 255, 255, 0.15) 25%,rgba(0, 0, 0, 0) 25%,rgba(0, 0, 0, 0) 50%,rgba(255, 255, 255, 0.15) 50%,rgba(255, 255, 255, 0.15) 75%,rgba(0, 0, 0, 0) 75%,rgba(0, 0, 0, 0));
}
.progress .bar {
float: left;
width: 0;
height: 100%;
font-size: 12px;
color: #FFF;
text-align: center;
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf',endColorstr='#ff0480be',GradientType=0);
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-moz-box-shadow: inset 0 -1px 0 rgba(0,0,0,0.15);
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-transition: width .6s ease;
-moz-transition: width .6s ease;
-o-transition: width .6s ease;
transition: width .6s ease;
}
.title{
position:relative;
z-index:1;
zoom:1;
}
.title em{display:none;}
.title:hover em{
display:block;
position:absolute;
z-index:1;
background-color: #000;
-webkit-border-radius:10px; /* красивости в виде скругленных углов */
-moz-border-radius:5px;
border-radius:5px;
line-height:normal;
color:#FFF;
text-decoration:none;
padding:3px 5px;
bottom:22px;
right:0;
-webkit-box-shadow:0 0 5px #000; /* красивости в виде тени */
-moz-box-shadow:0 0 5px #000;
box-shadow:0 0 5px #000;
}
.title:hover em i{
position:absolute;
z-index:1;
bottom:-7px;
right:5px;
border-top:7px solid #000;
border-left:7px solid transparent;
_border-left:7px solid #FDEFC6; /* цвет фона. это для ие6.*/
display:block;
height:0;
overflow:hidden;
}
#facebox .b {
background:url({$siteurl}lgsl/lgsl_files/facebox/b.png);
}
#facebox .tl {
background:url({$siteurl}lgsl/lgsl_files/facebox/tl.png);
}
#facebox .tr {
background:url({$siteurl}lgsl/lgsl_files/facebox/tr.png);
}
#facebox .bl {
background:url({$siteurl}lgsl/lgsl_files/facebox/bl.png);
}
#facebox .br {
background:url({$siteurl}lgsl/lgsl_files/facebox/br.png);
}
#facebox {
position: absolute;
top: 0;
left: 0;
z-index: 100;
text-align: left;
}
#facebox .popup {
position: relative;
}
#facebox table {
border-collapse: collapse;
}
#facebox td {
border-bottom: 0;
padding: 0;
}
#facebox .body {
padding: 10px;
background: #fff;
width: 700px;
}
#facebox .loading {
text-align: center;
}
#facebox .image {
text-align: center;
}
#facebox img {
border: 0;
margin: 0;
}
#facebox .footer {
border-top: 1px solid #fff;
border-collapse:collapse;
padding-top: 5px;
margin-top: 10px;
text-align: right;
}
#facebox .tl, #facebox .tr, #facebox .bl, #facebox .br {
height: 10px;
width: 10px;
overflow: hidden;
padding: 0;
}
#facebox_overlay {
position: fixed;
top: 0px;
left: 0px;
height:100%;
width:100%;
}
.facebox_hide {
z-index:-100;
}
.facebox_overlayBG {
background-color: #000;
z-index: 99;
}
* html #facebox_overlay { /* ie6 hack */
position: absolute;
height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
}
table.ipb_table2 th {
padding: 3px 10px;
border: 1px solid #616161;
border-collapse: collapse;
}
table.ipb_table2 {
border-collapse: collapse;
border-radius:4px;
}
.status-on {
background:#7BA60D url({$siteurl}lgsl/lgsl_files/bg-maintitle.png) repeat-x center left;
border: 1px solid #689E07;
text-shadow: -1px -1px 0 #689E07;
}
.status-off {
background:#BF1D00 url({$siteurl}lgsl/lgsl_files/bg-maintitle.png) repeat-x center left;
border: 1px solid #B00303;
text-shadow: -1px -1px 0 #B00303;
}
.status {
padding: 2px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
.status {
font-size: 10.998px;
font-weight: bold;
line-height: 14px;
color: white;
white-space: nowrap;
vertical-align: baseline;
}
.short2{
font-weight: bold;
}
</style>
<script type='text/javascript'>
jQuery(document).ready(function($) {
$('a[rel*=facebox]').facebox({
loading_image : '{$siteurl}lgsl/lgsl_files/facebox/loading.gif',
close_image : '{$siteurl}lgsl/lgsl_files/facebox/123.gif'
})
})
</script>";
$output .= "
<h3 class='maintitle'>Мониторинг</h3>";
$total = lgsl_group_totals($server_list);
$total_players = round($total['players'] / $total['playersmax'] * 100);
$output .= "
<th class='short' >
<div style='position: relative;border-radius:3px;background:url(http://talk.web-ask.ru/uploads/monthly_01_2014/post-566-0-97212200-1389811947.png) 0px 0px repeat-x #A3C2E3;padding: 5px;border: 1px solid #729DC4;box-shadow: rgba(0,0,0,0.102) 0px 1px 3px;font-size: 9px;color:rgba(0,0,0,0);text-transform:uppercase;font-weight:700;margin:5px 0px;'>
<div class='progress progress-warning progress-striped' style='margin-bottom: 0px;'>
<div class='bar' style='width: {$total_players}%; background: url(http://talk.web-ask.ru/uploads/monthly_01_2014/post-566-0-78900800-1389811940_thumb.png) repeat-x scroll 1px #183C5D;border: 0;'>
</div>
<div style='position: absolute;width: 100%;top: 8px; '>
<span style='color: #FF0000;'><center>Процент заполнения серверов - {$total_players}%</center></span>
</div>
</div>
</div>";
$output .= "<table class='ipb_table2'>
<tr style='height:29px;background:#4682b4; table-layout:fixed'>
<th class='short2' ><center><b><nobr>Игра</nobr></b></center></th>
<th class='short2' ><center><b><nobr>Статус</nobr></b></center></th>
<th class='short2' ><center><b><nobr>Адрес</nobr></b></center></th>
<th class='short2' ><center><b><nobr>Название</nobr></b></center></th>
<th class='short2' ><center><b><nobr>Карта</nobr></b></center></th>
<th class='short2' ><center><b><nobr>Игроки</nobr></b></center></th>
<th class='short2' ><center><b><nobr>Информация</nobr></b></center></th>
</tr>";
foreach ($server_list as $server)
{
$misc = lgsl_server_misc($server);
$server = lgsl_server_html($server);
$output .= "
<tr style='".lgsl_bg()."; table-layout:fixed'>
<th class='short'>
<center>
<img src='{$misc['icon_game']}' style='vertical-align:middle'>
</center>
</th>";
if ($misc['icon_status'] == "{$siteurl}lgsl/lgsl_files/other/icon_online.gif")
{
$class = 'status-on';
$tooltip ='Сервер включен :)';
$statusserv = ' Онлайн ';
}
else
{
$class = 'status-off';
$tooltip ='Сервер выключен :(';
$statusserv = ' Оффлайн ';
}
$output .= "
<th class='short' >
<center>
<div class='status {$class}' data-tooltip='{$tooltip}'>
<nobr>
{$statusserv}
</nobr>
</div>
</center>
</th>
<th class='short' >
<a href='{$misc['software_link']}' style='text-decoration:none' data-tooltip='Подключиться к серверу через STEAM'>
<nobr>
<b><font color='#c41e3a'>{$server['b']['ip']}:{$server['b']['c_port']}</font></b>
</nobr>
</a>
</th>
<th class='short' >
<nobr>
<b><font color='#000000'>{$misc['name_filtered']}</font></b>
</nobr>
</th>
<th>
<center><span class='title'><b><font color='#000000'>{$server['s']['map']}</font></b><em>
<img alt='' src='{$misc['image_map']}' style='vertical-align:middle' /></em></span></center>
</th>";
if ($server['s']['playersmax'] == '0')
{
$p=0;
}
else
{
$p = round(($server['s']['players']/$server['s']['playersmax'])* 100);
}
if ($misc['icon_status'] == "{$siteurl}lgsl/lgsl_files/other/icon_no_response.gif")
{
$playern = "<nobr>Смена карты</nobr>";
}
else
{
$playern = "<font color='#000'>{$server['s']['players']}/{$server['s']['playersmax']}</font>";
}
if($p == 0){
$bgcolor = '#d8025c';
}
elseif(($p > 0) && ($p <= 25)){
$bgcolor = '#C1E5A8';
}
elseif(($p > 25) && ($p <= 50)){
$bgcolor = '#48AF44';
}
elseif(($p > 50) && ($p <= 75)){
$bgcolor = '#FBB450';
}
elseif(($p > 75) && ($p <= 100)){
$bgcolor = '#FB6550';
}
$output .= "
<th class='short' >
<div style='position: relative;'>
<div class='progress progress-warning progress-striped' style='margin-bottom: 0px;'>
<div class='bar' style='width: {$p}%;background-color: {$bgcolor};'>
</div>
<div style='position: absolute;width: 100%;top: 4px;'>
<a href=\"#{$server['o']['id']}\" rel=\"facebox\"><center>{$playern}</center></a>
</div>
</div>
</div>
<div id=\"{$server['o']['id']}\" style=\"display:none;\">
<iframe src='{$siteurl}lgsl/mon.php?s={$server['o']['id']}' width='100%' frameborder='0' height='600px'></iframe>
</div>
</th>
<th class='short'><center><a href='http://wake-up-gamers.ru/index.php?/forum/6-pokupka-adminokvip/'><img alt='Купить Админку/VIP' data-tooltip= 'Купить Админку/VIP {$misc['name_filtered']}' src='http://wake-up-gamers.ru/uploads/buy.png' style='vertical-align:middle' /></a></center>
</th>
</tr>";
}
//------------------------------------------------------------------------------------------------------------+
$output .= "
</table>";
$output .= "
<br>";