Вот готовый мониторинг с vip статусом [ссылка удалена]
единственный минус в том что он заточен под LGSL 5.0, а нужно приделать vip к LGSL 5.7.
Вобщем рейтинг я уже прикрутил, а вот вип не палучаеться, плиз хелп)!!!
Vip статус сервера на LGSL 5.7
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
Ничего приделывать никуда не надо, в LGSL 5.7 уже все есть - надо просто правильно подключить.
Решение обсуждалось в viewtopic.php?t=465
Решение обсуждалось в viewtopic.php?t=465
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
По поводу випов в общем списке (обозначены на картинке цифрой 2). Переделать от прошлой версии скорее всего будет даже сложнее чем написать заново.
Если вкратце то
- добавить в таблицу в БД поле isvip
- добавить в админку вывод поля и возможность записи в него 0 или 1
- добавить запрос на выборку випов (с 1 в поле isvip) и их вывод перед основными серверами
- поправить запрос выбирающий основные сервера, чтобы в него не попадали випы
Правки довольно значительные, потому возиться бесплатно желания нет.
Если у тебя есть знания php, то сможешь сделать сам.
Тоже самое относится и к фильтру серверов (обозначенному на картинке цифрой 1)
Если вкратце то
- добавить в таблицу в БД поле isvip
- добавить в админку вывод поля и возможность записи в него 0 или 1
- добавить запрос на выборку випов (с 1 в поле isvip) и их вывод перед основными серверами
- поправить запрос выбирающий основные сервера, чтобы в него не попадали випы
Правки довольно значительные, потому возиться бесплатно желания нет.
Если у тебя есть знания php, то сможешь сделать сам.
Тоже самое относится и к фильтру серверов (обозначенному на картинке цифрой 1)
Ясно помогите хотябы со скриптом поиска. Скрипт должен искать сервера по ip и port введенные в форму
Но сейчас после запроса выдает
Код: Выделить всё
<?php
require_once "lgsl_protocol.php";
echo "
<div style='text-align:center'>
<form action='{$SERVER['PHP_SELF']}' method='post'>
IP: <input name='ip' type='text' size='20' value='' />
PORT: <input name='port' type='text' size='5' value='27015' />
<br />
<br />
<input type='submit' value='SUBMIT' />
</form>
</div>";
if (!$_POST['ip'] && !$_POST['port'])
{
return;
}
$ip = trim($_POST['ip']);
$port = trim($_POST['port']);
$server = lgsl_query_live($ip, $port, $port, $port, "halflife", "se");
if (!$server['b']['status'])
{
echo "SERVER DID NOT RESPOND <br />";
return;
}
// HTMLENTITIES PREVENTS ANY HTML IN THE NAME FROM BREAKING THE PAGE
$server['s']['name'] = htmlentities($server['s']['name'], ENT_QUOTES);
echo "
NAME: {$server['s']['name']} <br />
MAXRATE: {$server['e']['sv_maxrate']} <br />";
return;
?>
В чем ошибка почему не работает?LGSL PROBLEM: INVALID TYPE '92.241.176.65' FOR 27019, 27019, 0, halflife
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
в каком смысле "искать сервера"? сейчас он просто запрашивает данные с указываемого адреса сервера.mkden писал(а):Скрипт должен искать сервера по ip и port введенные в форму
строка
Код: Выделить всё
return;
да и код я тебя похоже с устаревшей версии. в 5.7 параметры в другом порядке
Код: Выделить всё
lgsl_query_live('halflife', $ip, 0, $port, 0, "se")
Все с кодом разабрался теперь появилась другая проблема
Вот скрипт google map :
Работает харошо на обычной странице
http://codmk.org.ru/monitor/geoip.php
Но мне надо вставить в lgsl_detals
Вставляю так
Но почему то неработает
http://codmk.org.ru/monitor/server.html?s=6
плиз хелп!
Вот скрипт google map :
Код: Выделить всё
<div style="margin: 0pt auto; text-align: center;"><?php
include "ipdatabase/geoipcity.inc";
$end_ip = '213.179.244.30';
$gi = geoip_open("ipdatabase/geolitecity.dat", GEOIP_STANDARD);
$res = GeoIP_record_by_addr($gi,$end_ip);
geoip_close($gi);
echo $country_flag;
?>
<script
src="http://maps.google.com/maps?file=api&v=2&key=мой ключ"
type="text/javascript"></script> <script type="text/javascript">
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl3D());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng("<?php echo $res->latitude ?>", "<?php echo $res->longitude ?>"), 10);
map.setMapType(G_HYBRID_MAP);
map.openInfoWindowHtml(map.getCenter(),"<div> <?php echo $country_flag; ?><?php echo $res->country_name ?>,<br><?php echo $GEOIP_REGION_NAME[$res->country_code][$res->region] ?>, <?php echo $res->city ?>,<br><?php echo $end_ip; ?> <br><?php echo gethostbyaddr($end_ip);?></div>");
}
}
</script>
<div id="map" style="width: 500px; height: 300px; text-align: center;"> </div>
<script>load();</script> </div>
http://codmk.org.ru/monitor/geoip.php
Но мне надо вставить в lgsl_detals
Вставляю так
Код: Выделить всё
<div style='margin: 0pt auto; text-align: center;'><?php
include 'ipdatabase/geoipcity.inc';
$end_ip = '{$server['b']['ip']}';
$gi = geoip_open('ipdatabase/geolitecity.dat', GEOIP_STANDARD);
$res = GeoIP_record_by_addr($gi,$end_ip);
geoip_close($gi);
?>
<script
src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAIrf0lNYFt_PiuuYyHv389hR8LVKr3D5Szh4fFkjNhBBOjyrGzhQXBQ-5Jv8iutZJ8hlFSo9o_37tWQ'
type='text/javascript'></script> <script type='text/javascript'>
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById('map'));
map.addControl(new GLargeMapControl3D());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng('<?php echo $res->latitude ?>','<?php echo $res->longitude ?>'), 10);
map.setMapType(G_HYBRID_MAP);
map.openInfoWindowHtml(map.getCenter(),'<div> <?php echo $end_ip; ?> <br><?php echo gethostbyaddr($end_ip);?></div>');
}
}
</script>
http://codmk.org.ru/monitor/server.html?s=6
плиз хелп!
p.s: В php я нуб!!! )
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
у тебя php код не выполняется перед выдачей результата пользователю
проверяй куда и как вставляешь<div style='margin: 0pt auto; text-align: center;'><?php
include 'ipdatabase/geoipcity.inc';
= geoip_open('ipdatabase/geolitecity.dat', GEOIP_STANDARD);
= GeoIP_record_by_addr(,83.222.109.20);
geoip_close();
?>
...
map.openInfoWindowHtml(map.getCenter(),'<div> <?php echo 83.222.109.20; ?> <br><?php echo gethostbyaddr(83.222.109.20);?></div>');
...
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
я не могу угадать как у тебя настроен веб-сервер и какие изменения вносились в оригинальный lgsl
но факт что страница формируется криво и часть php кода отдается как текст
например даже выше указанного блока у тебя часто встречается
проверяй в чем отличие обработки данных сервера от твоих дополнительных данных при формировании страницы
-- добавлено 29 май 2010, 16:36 --
p.s.
но факт что страница формируется криво и часть php кода отдается как текст
например даже выше указанного блока у тебя часто встречается
я уже не говорю про проблемы структуры html<tr style='".lgsl_bg()."'>
проверяй в чем отличие обработки данных сервера от твоих дополнительных данных при формировании страницы
-- добавлено 29 май 2010, 16:36 --
p.s.
цветом я выделял не ошибки кода, а то что пользователю отдавался php-код в чистом виде, а не результат его выполненияmkden писал(а):Извените но все равно не работает
По поводу google map не работает потомучто айпи сервера береться из "lgsl_class.php" если убрать строчку require "lgsl_class.php"; и вставить любой айпи все работает ,php код не выполняется из за lgsl_class.php а что там править понятия не имею?
Теперь возник следующий вапрос хочу сделать страницу lgsl_details.php со вкладками
http://codmk.org.ru/monitor/?s=3
но почимуто не получаеться, работает только пхп код если он не привязан к файлу lgsl_class.php
Вот мой код
Теперь возник следующий вапрос хочу сделать страницу lgsl_details.php со вкладками
http://codmk.org.ru/monitor/?s=3
но почимуто не получаеться, работает только пхп код если он не привязан к файлу lgsl_class.php
Вот мой код
Код: Выделить всё
<head>
<style type="text/css">
h1 {font-size: 3em; margin: 20px 0;}
.container {width: 100%; margin: 10px auto;}
.container1 {width: 100%; margin: 10px auto;}
ul.tabs {
margin: 0;
padding: 0;
float: left;
list-style: none;
height: 32px;
border-bottom: 1px solid #999;
border-left: 1px solid #999;
width: 100%;
}
ul.tabs li {
float: left;
margin: 0;
padding: 0;
height: 31px;
line-height: 31px;
border: 1px solid #999;
border-left: none;
margin-bottom: -1px;
background: #e0e0e0;
overflow: hidden;
position: relative;
}
ul.tabs li a {
text-decoration: none;
color: #000;
display: block;
font-size: 1.2em;
padding: 0 20px;
border: 1px solid #fff;
outline: none;
}
ul.tabs li a:hover {
background: #ccc;
}
html ul.tabs li.active, html ul.tabs li.active a:hover {
background: #fff;
border-bottom: 1px solid #fff;
}
.tab_container {
clear: both;
float: left;
width: 100%;
}
.tab_content {
padding: 20px;
font-size: 1.2em;
}
.tab_content img {
float: left;
margin: 0 20px 20px 0;
border: 1px solid #ddd;
padding: 5px;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(".tab_content").hide();
$("ul.tabs li:first").addClass("active").show();
$(".tab_content:first").show();
$("ul.tabs li").click(function() {
$("ul.tabs li").removeClass("active");
$(this).addClass("active");
$(".tab_content").hide();
var activeTab = $(this).find("a").attr("href");
$(activeTab).fadeIn();
return false;
});
});
</script>
</head>
<div class="container">
<ul class="tabs">
<li class="active"><a href="#tab1">Инфа</a></li>
<li><a href="#tab2">Баннеры</a></li>
<li><a href="#tab3">Кто играет?</a></li>
<li><a href="#tab4">Отзывы о сервере</a></li>
</ul>
<div class="tab_container">
<div style="display: block;" id="tab1" class="tab_content">
<?php
require "lgsl_class.php";
$fields_show = array("name", "score", "deaths", "team", "ping", "bot", "time"); // THESE FIELDS ARE ORDERED FIRST
$fields_hide = array("teamindex", "pid", "pbguid"); // THESE FIELDS ARE REMOVED
$fields_other = TRUE; // FALSE WILL HIDE FIELDS NOT IN $fields_show
// GET THE SERVER DETAILS AND PREPARE IT FOR DISPLAY
$lookup = lgsl_lookup_id($_GET['s']);
if (!$lookup)
{
$output .= "<div style='margin:auto; text-align:center'> {$lgsl_config['text']['mid']} </div>"; return;
}
$server = lgsl_query_cached($lookup['type'], $lookup['ip'], $lookup['c_port'], $lookup['q_port'], $lookup['s_port'], "sep");
$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);
// SHOW THE STANDARD INFO
$output .= "
<table cellpadding='2' cellspacing='2' style='margin:auto'>
<tr>
<td colspan='3' style='text-align:center'>
<b>Информация о сервере</b><br />
<b> {$server['s']['name']} </b>
<br />
</td>
</tr>
</table>";
$output .= "
<table cellpadding='3' cellspacing='10' style='margin:auto'>
<td rowspan='2' style='text-align:center' >
<table cellpadding='2' cellspacing='4' style='margin:auto'>
<tr ><td> <b> {$lgsl_config['text']['sts']} </b></td><td > {$misc['text_status']} </td></tr>
<tr ><td> <b> {$lgsl_config['text']['adr']} </b></td><td > {$server['b']['ip']} </td></tr>
<tr ><td> <b> {$lgsl_config['text']['cpt']} </b></td><td > {$server['b']['c_port']} </td></tr>
<tr ><td> <b> Райтинг:</b></td><td > {$lookup['rating']} </td></tr>
<tr ><td> <b>Инфа:</b></td><td >
<a href='{$misc['software_link']}' style='text-decoration:none'>
Об игре
</a>
</td></tr>
<tr ><td> <b> {$lgsl_config['text']['typ']} </b></td><td > {$server['b']['type']} </td></tr>
<tr ><td> <b> {$lgsl_config['text']['gme']} </b></td><td > {$server['s']['game']} </td></tr>
<tr ><td> <b> {$lgsl_config['text']['map']} </b></td><td > {$server['s']['map']} </td></tr>
<tr ><td> <b> {$lgsl_config['text']['plr']} </b></td><td > {$server['s']['players']} / {$server['s']['playersmax']} </td></tr>
<tr ><td> <b> Страна:</b></td><td > <img border='0' src='http://codmk.org.ru/monitor/s_{$server['o']['id']}-n.png'> </td></tr>
</table>
</td>
<td style='text-align:center'>
<img alt='' style='border:1px' src='{$misc['iconn_game']}'/>
</br>
<img alt='' style='border:1px solid' src='{$misc['image_map']}' width='150px' height='110px'/>
</td>
</table>";
?>
</div>
<div style="display: block;" id="tab2" class="tab_content">
<?php
require "lgsl_class.php";
$output .= "
<table cellpadding='2' cellspacing='2' style='margin:auto'>
<tr><td>
<div id='page-wrap'>
<h3>Баннеры для вашего сайта</h3>
<fieldset>
<legend>Выбирайте</legend>
<form action='#' class='code-selector'>
<div>
<label for='type-size'>Размер: </label>
<select name='type-size' id='type-size'>
<option selected='selected' rel='s_".$_GET['s']."-p.png'>165 x 198</option>
<option rel='banner.html?s=".$_GET['s']."'>160 x 270</option>
<option rel='s_".$_GET['s']."-normal.png'>450 x 90</option>
<option rel='s_".$_GET['s']."-small.png'>380 x 22(светлый)</option>
<option rel='s_".$_GET['s']."-s.png'>380 x 22(темный)</option>
</select>
</div>
<div>
<label for='code-example'>HTML Код: </label>
<textarea rows='10' cols='25' id='code-box'><a href='http://codmk.org.ru/monitor/'><img src='http://codmk.org.ru/monitor/s_1-p.png' alt='мониторинг игровых серверов' /></a></textarea>
<p class='note'>Просто скопируйте код выше и вставьте в свою страничку</p>
</br>
<label for='code-example'>BB Код: </label>
<textarea rows='10' cols='25' id='code-box2'>[url=http://codmk.org.ru/monitor/][img]http://codmk.org.ru/monitor/s_1-p.png alt='мониторинг игровых серверов' [/img]
</textarea>
<p class='note'>Просто скопируйте код выше и вставьте в свою страничку</p>
</div>
</form>
<label>Пример: </label>
<div class='example-area' id='graphic-example-area'>
<a href='http://codmk.org.ru/monitor/'><img src='http://codmk.org.ru/monitor/s_".$_GET['s']."-p.png' alt='мониторинг игровых серверов' /></a>
</div>
<p class='note'>Пример баннера</p>
</fieldset>
</div>
</div>
</td>
</tr>
</td>
</tr>
</table>";
?>
</div>
<div style="display: block;" id="tab3" class="tab_content">
<?php
require "lgsl_class.php";
$fields_show = array("name", "score", "deaths", "team", "ping", "bot", "time"); // THESE FIELDS ARE ORDERED FIRST
$fields_hide = array("teamindex", "pid", "pbguid"); // THESE FIELDS ARE REMOVED
$fields_other = TRUE; // FALSE WILL HIDE FIELDS NOT IN $fields_show
// GET THE SERVER DETAILS AND PREPARE IT FOR DISPLAY
$lookup = lgsl_lookup_id($_GET['s']);
if (!$lookup)
{
$output .= "<div style='margin:auto; text-align:center'> {$lgsl_config['text']['mid']} </div>"; return;
}
$server = lgsl_query_cached($lookup['type'], $lookup['ip'], $lookup['c_port'], $lookup['q_port'], $lookup['s_port'], "sep");
$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);
// SHOW THE PLAYERS
$output .= "
<table border='0' cellpadding='0' cellspacing='0' align='center'>
<tr>
<td valign='top'>
<b>Сейчас играют</b><br /><br />
<table border='0' cellpadding='2' cellspacing='3' background-image: url(/monitor/images/bg1.jpg) '>
<tr>";
if (!$server['p'])
{
$output .= "
<table class='list_table' cellpadding='4' cellspacing='2' style='margin:auto'>
<tr>
<td class='list_row'> {$lgsl_config['text']['npi']} </td>
</tr>
</table>
<div style='height:20px'></div>";
}
else
{
$used_field_list = array();
{
foreach ($server['p'] as $player)
{
if (isset($player[$field]))
{
$used_field_list[$field] = $title;
}
}
}
$output .= "
<table class='list_table' cellpadding='4' cellspacing='2' style='margin:auto'>
<tr>";
foreach ($fields as $field)
{
$field = ucfirst($field);
if ($field == "Name") { $field = "Имя"; }
elseif ($field == "Ping") { $field = "Пинг"; }
elseif ($field == "Score") { $field = "Фраги"; }
elseif ($field == "Time") { $field = "Время"; }
elseif ($field == "Deaths") { $field = "Умер"; }
elseif ($field == "Team") { $field = "Команда"; }
elseif ($field == "Skill") { $field = "Скил"; }
elseif ($field == "Squad") { $field = "Отряд"; }
elseif ($field == "Kills") { $field = "Убийств"; }
elseif ($field == "Rate") { $field = "Класс"; }
$output .= "
<td style='background-image: url(/monitor/images/menu.gif) '><b>{$field}</b> </td>";
}
$output .= "
</tr>";
foreach ($server['p'] as $player_key => $player)
{
$output .= "
<tr style='".lgsl_bg().";background-image: url(/monitor/images/bg1.jpg) '>";
foreach ($fields as $field)
{
$output .= "
<td valign='top'> {$player[$field]} </td>";
}
$output .= "
</tr>";
}
$output .= "
</table>
<div style='height:20px'></div>";
}
// SHOW THE SETTINGS
$output .= "
<td valign='top'>
<b>Настройки сервера</b><br /><br/>
<table cellpadding='2' cellspacing='3' background-image: url(/monitor/images/bg1.jpg) '>
<tr>
<td style='background-image: url(/monitor/images/menu.gif) '> <b>{$lgsl_config['text']['ehs']}</b> </td>
<td style='background-image: url(/monitor/images/menu.gif) '> <b>{$lgsl_config['text']['ehv']}</b> </td>
</tr>";
foreach ($server['e'] as $field => $value)
{
$color = lgsl_bg();
$output .= "
<tr>
<td style='background-image: url(/monitor/images/bg1.jpg) '> {$field} </td>
<td style='background-image: url(/monitor/images/bg1.jpg) '> {$value} </td>
</td>
</tr>";
}
$output .= "
</table>";
$output .= "
</table>";
?>
</div>
<div style="display: block;" id="tab4" class="tab_content">
<center>
</center>
<h1 class="title">Добавление комментария:</h1>
<form name="comment" class="comment-form" method="post" action="mit.php">
<p>Имя:<br/><input name="name" type="text"/></p>
<p>Email:<br/><input name="email" type="text"/></p>
<p>Текст:<br/><textarea name="text" rows="5" cols="30"></textarea></p>
<input name="num" type="hidden" value=/>
<p><input class="button" name="button" type="submit" value="Добавить"/></p>
</form>
</center>
</div>
</div>
p.s: В php я нуб!!! )
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
все блоки типа
должны выводиться через переменную $output, иначе будет получаться как у тебя - сначала выводится то что описано простым текстом, а после этого то что писалось в $output.
Код: Выделить всё
<div class="container">
<ul class="tabs">
<li class="active"><a href="#tab1">Инфа</a></li>
<li><a href="#tab2">Баннеры</a></li>
<li><a href="#tab3">Кто играет?</a></li>
<li><a href="#tab4">Отзывы о сервере</a></li>
</ul>
<div class="tab_container">
<div style="display: block;" id="tab1" class="tab_content">
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
при клике по корешку, скрывается содержимое таба и браузер подтягивает позицию страницы вверх, т.к. ее высота уменьшилась. а после этого уже отображается содержимое нового таба, и оказывается ниже зоны видимости.mkden писал(а):при нажатии на таб резко кидает на хедер страницы как это решить?
Есть несколько путей решения:
- 1 - наиболее простой - убрать у тебя блоки вип серверов и ссылок на категории, за счет чего вкладки будут практически всегда полностью отображаться и скачков не будет. но при небольших разрешениях экрана все равно возможны небольшие скачки
2 - скролить страницу вниз после отображенияскачка страницы вверх не будет, но будет видно, как один блок скрывается, а другой появляется. Также, при слишком длинных вкладках, скролиться будет ниже начала таба (хотя это можно и исправить подобрав вместо 10000 значение, при котором будет отображаться начало таба)Код: Выделить всё
var activeTab = $(this).find("a").attr("href"); $(activeTab).fadeIn(); window.scrollTo( 0,10000);
3 - использовать не скрытие а скольжениеНе скажу что вариант оптимальный, но лучше второго. только надо добавить нижнюю границу для наглядностиКод: Выделить всё
$(".tab_content").slideUp(200); var activeTab = $(this).find("a").attr("href"); $(activeTab).slideDown(200);
4 - задать минимальную высоту для блока вкладок.Код: Выделить всё
.tab_content { ... border-bottom:1px solid #999; }
неплохой вариант, скакать слишком явно не будет. из минусов - IE6 не понимает min-height, поэтому для него придется использовать дополнительный хакКод: Выделить всё
.tab_container { ... min-height:400px; }
5 - имхо самый правильный - контейнеру табов задается фиксированная высота, если высота таба больше, то появляется полоса прокрутки.При таком раскладе скакать не будет нигде, но возможно будет неудобно наличие полосы прокруткиКод: Выделить всё
.tab_container { ... height:600px; overflow:scroll; overflow-x:hidden; overflow-y:scroll; }
Код: Выделить всё
$(activeTab).fadeIn();
Код: Выделить всё
$(activeTab).fadeIn(500);
- Distructor
- Администратор
- Сообщения: 1607
- Зарегистрирован: 28.12.2009
не лишним будет тебе почитать хотя бы общую информацию по php. Делать свой ресурс основываясь только на советах с форумов поддержки мягко говоря неправильно..mkden писал(а):А по поводу google map не подскажите что надо в в lgslclas править?