Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление
  2. Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб Мониторинг на сайт [PHP][CSS]

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем franzus, 6 мар 2013.

  1. Автор темы
    franzus

    franzus Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    franzus
    Добрых суток, Вам, ув. форумчане! ;)
    Вот собрался духом и решил выложить свой первый паблик, и по сути дела свою первую работу с PHP.(Прошу уважаемых скриптеров особо не казнить, и не критиковать =) )
    По скольку я не так давно был новичком в создании своего проекта и проводил целые часы в поисках новых "плюшек" для своего сайта. По этому я выложу также подробную документацию по полному редактированию этого кода. И так...
    Выкладываю первую верстку стиля мониторинга) От @Dragoy
    [​IMG]
    (конечно это не так как планировалось автором, но все же ;) ) (Скачать)
    Внизу все еще можно скачать старую версию скрипта, вот скрин:

    [​IMG]

    Еще добавлю немного лирики в паблик =)
    Мне очень нравятся мониторинги сделаны на основе картинки, но к сожалению они бывают много весят(в смысли картинки) и это не нравиться поисковикам. Но все же, кто увлекается именно таким мониторингом рекомендую использовать EndlessMonitor
    1. Открываем файл "mon.php" и настраиваем поля
    2. Забрасываем все к себе в корневую папку
    3. Название сервера - это картинка которую можно легко отредактировать в ФШ или в Пеинте ;)

    4.Для того что бы он у вас отображался на сайте в нужно место вставляем:
    Для DLE
    HTML:
    {include file="/monitor/mon.php"}
    Для другой CMS
    (прошу помочь в этом вопросе :rolleyes: )

    Для начала разберем структуру кода:
    PHP:
    <link media="screen" href="/monitor/monitor.css" type="text/css" rel="stylesheet" />
    <?php
     
    $host 
    "IP-адресс Вашего сервера";
    $port "Порт Вашего сервера";
     
     
    $socket = @fsockopen($host$port);
    if (
    $socket !== false) {
    @
    fwrite($socket"\xFE");
    $data "";
    $data = @fread($socket256);
    @
    fclose($socket);
     
    if (
    $data == false or substr($data01) != "\xFF") return;{
     
    $infosubstr$data);
    $info iconv'UTF-16BE''UTF-8'$info );
    if( 
    $info] === "\xA7" && $info] === "\x31" ) {
    $info explode"\x00"$info );
    $playersOnline=IntVal$info[4] );
    $playersMax IntVal$info[5] );
    } else {
    $info Explode"\xA7"$info );
    $playersOnline=IntVal$info[1] );
    $playersMax IntVal$info[2] );
    }
    //Вывод мониторинга
    echo "<div id=server1 style=background:url(/monitor/img/server1.jpg) no-repeat;>
    <div id=online1>"
    ,$playersOnline,"</div>
    <div id=progress><div id=progress-value style=width:"
    ,$playersOnline,"%></div></div></div>";
     
    }
    } else {
    //Вывод "сервер не доступен"
    echo "<div id=\"server1\" style=\"background:url(/monitor/img/server1-err.jpg) no-repeat; width: 200px; height: 85px;\"></div>";
    }
    ?>
    В самом вверху мы видим строку:
    HTML:
    <link media="screen" href="/monitor/monitor.css" type="text/css" rel="stylesheet" />
    Как многие уже знают, это ссылка на подключения CSS стилей к данному скрипту, следовательно в файле "monitor.css" лежат все наши стили которые мы можем спокойно менять)
    Далее у нас идет сам PHP-код
    1й Этап это идет подключение к вашему серверу и "вытягивание" из него информации (об этом я расскажу позже)
    Приступим к тому что мы можем "покрутить" =)
    а именно:
    PHP:
    echo "<div id=server1 style=background:url(/monitor/img/server1.jpg) no-repeat;>
    <div id=online1>"
    ,$playersOnline,"</div>
    <div id=progress><div id=progress-value style=width:"
    ,$playersOnline,"%></div></div></div>";}}
    И так..Это непосредственно сам вывод мониторинга. Мы в первой строке можем увидеть ссылку на картинку, эта именно та картинка которая будет нести в себе название сервера и т.д.(с такой же картинкой можно встретиться в следующей части кода)

    Далее мы видим "$playersOnline" - эта переменная выводит кол-во игроков онлайн
    Для того что бы отображался прогрессбар я использовал стандартную возможность менять ширину от кол-ва человек онлайн. Тут есть одна тонкость, если у Вас на сервере можно вместить 100 человек то вопросов никаких не возникнет, но в моем случае это всего-лишь 40 человек. И тут вопрос как сделать так что бы на это кол-во человек отображался "правильно" и я отредактировал код таки образом:
    PHP:
    echo "<div id=server1 style=background:url(/monitor/img/server1.jpg) no-repeat;>
    <div id=online1>"
    ,$playersOnline,"</div>
    <div id=progress><div id=progress-value style=width:"
    ,round(2.5*$playersOnline),"%></div></div></div>";}}
    У кого меньшое кол-во слотов на сервере данная идея будет понятна.
    То есть если у вас 60 человек то будет примерно: round(1.7*$playersOnline)
    80 - round(1.5*$playersOnline)
    и т.д. в том же духе. (не факт что формула правильна, но суть ясна)
    Далее код:
    PHP:
    //Вывод "сервер не доступен"
    echo "<div id=\"server1\" style=\"background:url(/monitor/img/server1-err.jpg) no-repeat; width: 200px; height: 85px;\"></div>";}
    Он полностью аналогичен коду выше с выводом картинки с вашим сервером, только запись на нем будет "Сервер временно не доступен"
    В принципе на этом наша гибкая настройка закончена.
    Суть данной документации была в том, что когда я начинал свое изучение, мне было довольно-таки тяжело разобраться в этом. По этому респект новичкам и мой личный совет, практикуйтесь больше! Учитесь на собственных ошибках и используйте метод ТЫКа, он во всех ситуациях уместный)

    UPD: Обновлены протоколы, спасибо @Shevchik
    UPD: Добавлен новый стиль мониторинга

    * Изменить стиль мониторинга
    * Изменить "ядро" скрипта
    * Создать систему автоматического добавления сервера удаленно, посредством MySQL
    * Внедрить скрипт в разные CMS как модуль

    Если что-то забыл, пишите в комментах.
    Если есть предложения, пишите тоже там же ;)
     

    Вложения:

    • monitor.zip
      Размер файла:
      23,3 КБ
      Просмотров:
      972
    forc1k, artgur, Bashur и 9 другим нравится это.
  2. Хостинг MineCraft
    <
  3. Автор темы
    franzus

    franzus Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    franzus
    (Резерв)
     
    zuma2 нравится это.
  4. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Ещё один человек которых не знает что протокол мониторинга изменился со времён майнкрафта 1.2.5
     
    Пароль123456789 нравится это.
  5. Автор темы
    franzus

    franzus Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    franzus
    @Shevchik, Я написал что в этом еще новичок, и все замечания уместны.
    На 1.4.7 работает. Если поделитесь своими знаниями, буду очень признателен :)
     
  6. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    а теперь проверь на спайготе с netty
    спайгот не стал поддерживать старый протокол коммуникации и потому на выходе твоего скрипта будет хрень.
     
  7. Автор темы
    franzus

    franzus Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    franzus
    хм..исправлю(скорее всего завтра), но в помощи не отказался бы ;)
     
  8. Dionixor

    Dionixor Старожил Пользователь

    Баллы:
    103
    Насколько я знаю, этот мониторинг, (а точнее рейтинг изначально) делался в centroarts, а айкрафт его подд себя сделал.
     
    Bigman007 нравится это.
  9. Автор темы
    franzus

    franzus Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    franzus
    @Dionixor, я в подробности эти не углублялся, в скором времени я выложу бесплатный стиль =) Который можно будет очень гибко подстраивать под себя
     
  10. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    PHP:
    @fwrite($socket"\xFE");
    $data "";
    $data = @fread($socket256);
    @
    fclose($socket);
     
    if (
    $data == false or substr($data01) != "\xFF") return;
     
    $infosubstr$data);
    $info iconv'UTF-16BE''UTF-8'$info );
    if( 
    $info] === "\xA7" && $info] === "\x31" ) {
    $info explode"\x00"$info );
    $playersOnline=IntVal$info[4] );
    $playersMax IntVal$info[5] );
    } else {
    $info Explode"\xA7"$info );
    $playersOnline=IntVal$info[1] );
    $playersMax IntVal$info[2] );
    }
     
    ПриветОтМиднайта и franzus нравится это.
  11. Vampikkkk

    Vampikkkk Старожил Пользователь

    Баллы:
    173
    Skype:
    Vampikkkk
    Смысл от рипа? лутше свое придумай)
     
  12. Автор темы
    franzus

    franzus Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    franzus
    @Vampikkkk, Это не рип. Этот код мой. Просто пока что он на основе этого стиля.
    Я же писал что скоро сделаю и залью бесплатный стиль
     
  13. Автор темы
    franzus

    franzus Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    franzus
    @Shevchik, спасибо большое! Обновил ;)
     
    HoShiMin нравится это.
  14. Vampikkkk

    Vampikkkk Старожил Пользователь

    Баллы:
    173
    Skype:
    Vampikkkk
    @franzus,зделай типо такого,(толька что набросал) по крайне мере такого я еще не видел)
    Без имени-2.png
     
  15. Vampikkkk

    Vampikkkk Старожил Пользователь

    Баллы:
    173
    Skype:
    Vampikkkk
    Понеслось, щас тебе кучу расцветок накидаю)))
    Без имени-2.png
    Без имени-23.png
     
  16. Vampikkkk

    Vampikkkk Старожил Пользователь

    Баллы:
    173
    Skype:
    Vampikkkk
    Мне аш самому нравится ^^
    111.png
     
    ALEXZZZ9 нравится это.
  17. DJoKeR46

    DJoKeR46 Активный участник Пользователь

    Баллы:
    68
    Имя в Minecraft:
    DJoKeR46
    Слушай, в могёшь сделать общий онлайн серверов?
     
  18. Bafolol

    Bafolol Старожил

    Баллы:
    103
    Skype:
    mr_starrose
    Имя в Minecraft:
    StarRose
    Давно искал, наконец нашёл:) Спасибо огромное автору;)
     
  19. Bafolol

    Bafolol Старожил

    Баллы:
    103
    Skype:
    mr_starrose
    Имя в Minecraft:
    StarRose
    @franzus,Сможешь сделать такое ?
     
  20. Автор темы
    franzus

    franzus Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    franzus
    @Vampikkkk, отлично, сегодня вечером попробую залить с новыми стилями =)
     
  21. Автор темы
    franzus

    franzus Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    franzus
    Вечером будет
    @Bafolol, такой же ответ по поводу общего онлайна =)
     

Поделиться этой страницей