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

Веб [1.1|0.2 + RSS]MCWLauncher (Web-часть)

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

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

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

    Баллы:
    103
    Ну вот я и выкладываю web-часть для "кусочного" скачивания клиента с сайта.

    Перейдем сразу к делу.
    Настройки скрипта(config.php):
    client_dir - папка с клиентом (распакованным client.zip), можно не менять.
    cache_dir - папка с кешем (кешированные блоки), можно не менять.
    block_size - размер 1 блока(по умолчанию 1 МБайт), тут нужно сбалансировать, при слишком маленьких значениях лаунчер посылает много запросов и так можно случайно заддосить сайт, при слишком больших значениях кеш может занять много места на диске, лучше использовать размер по умолчанию.
    cache_enabled - использовать кеш или нет. можно отключить, если вы не хотите, чтобы создавался кеш.(сэкономит дисковое пространство за счет уменьшения времени отклика) ПРИ ИЗМЕНЕНИИ ЭТОГО ПАРАМЕТРА ОБЯЗАТЕЛЬНО ЧИСТИТЬ КЕШ СКРИПТА

    Создание кеша:
    1. После загрузки скрипта на сайт открываем download.php в браузере, если вы увидете только надпись "err", значит все ОК.
    2. Далее закидываем содержимое client.zip в папку client (client_dir)
    3. Удаляем папку "cache", если таковая имеется (мало ли что там лишнего)
    4. Настраиваем лаунчер (см. ниже) и запускаем скачивание
    Если у вас хостинг с ограничением по нагрузке на процессор (напр. hostinger), то при создании кеша нужно следить за нагрузкой на сервер и при приближении к максимуму убивать процесс лаунчера (при закрытии окна процесс завершится только после окончания загрузки), хотя можно и не следить, но тогда сайт может быть закрыт на некоторое время, при этом лаунчер будет ждать пока сайт снова станет доступен. А лучше по возможности создать кеш на локальной машине, а позже закинуть на сайт.

    Настройка лаунчера:
    Находим строчку вида "launcher.startDownload('http://mcwl.esy.es/server/',1,'HTTP_MT');" в страничке-дизайне, где http://mcwl.esy.es/server/ меняем на путь до папки с файлом download.php (наличие http:// в начале и / в конце обязательно ), а 1 меняем на id вашего сервера (с сайта mcwl.esy.es, позже и ссылки на скачивание тоже будут браться оттуда, нужен будет тольк id сервера и режим скачивания), режим ("HTTP_MT") в нашем случае менять не надо.
    Далее нужно убедиться, что лаунчер настроен верно (в id.txt верный id лаунчера и все ссылки верны)
    Вот и все, нужнае файлы лежат в прикрепленном архиве, если возникнут вопросы - задавайте их ниже.

    Настраиваем импорт новостей по RSS. (По умолчанию всего 5 новостей, длина "кратой новости" 80 символов, пока обрезка идет "тупая", позже сделаю чтоб до конца предложения или хотя-бы слова обрезало)
    В архиве должен быть файл news.php, если его нет, то создаем новый.
    Далее убираем все, что есть в этом файле и вставляем туда следующий код:
    PHP:
    <?php
    $rss_link 
    "http://www.vesti.ru/vesti.rss";
    $rss_mode false;
    if(
    $rss_mode){
    $news = array(
        array(
    "title"=>"Пробная новость 1","content"=>"Содержимое пробной новости"),
        array(
    "title"=>"Пробная новость 2","content"=>"Содержимое пробной новости"),
        array(
    "title"=>"Пробная новость 3","content"=>"Содержимое пробной новости"),
        array(
    "title"=>"Пробная новость 4","content"=>"Содержимое пробной новости")
    );
    $ret "";
    foreach(
    $news as $post){

        
    ob_start();
        eval(
    "?><h3><?=\$post['title'];?></h3><p><?=\$post['content'];?></p><a href=\"#\">Подробнее</a>");
        
    $ret .= ob_get_clean();//str_replace("'","&#8242;",str_replace('"',"&#8243;",ob_get_clean()));

    }

    ?>
    }else{
    $xml = xml_parser_create();
    xml_parser_set_option($xml, XML_OPTION_SKIP_WHITE,1);
    xml_parse_into_struct($xml, file_get_contents($rss_link), $el, $fe);
    xml_parser_free($xml);
    //print_r($fe);
    //print_r($el);
    ob_start();
    for($i=0; $i<5; $i++){
       $m = $fe['ITEM'][$i];
       $title = $el[$m+1]['value'];
       $link = $el[$m+2]['value'];
       $time = $el[$m+4]['value'];
       $desc = mb_substr( $el[$m+3]['value'], 0, 80, 'UTF-8');
       //echo '<br/><strong>'.$title.'</strong> <br/>['.$time.']<br/>'.$desc.'<br/><a href="'.$link.'">читать...</a>';
       echo "<h3>".$title."</h3><p>".$desc."</p><a href='".$link."'>Подробнее<a>";
    }
    $ret .= ob_get_clean();
    }
    ?>

    <script>
    parent.document.getElementById("news").innerHTML = '<div style="position: inherit; height: inherit; overflow:auto" onmousedown="canmove = false;" onmouseup="canmove = true;"><?=$ret?></div>';
    </script>
    Для включения импорта rss заменяем "$rss_mode = false;" на "$rss_mode = true;" и на место "http://www.vesti.ru/vesti.rss" вставляете ссылку на нужный rss канал, после этого в оформлении лаунчера меняем ссылку с "http://mcwl.esy.es/server/news.php" на ссылку до вашего news.php. После этого ваш лаунчер будет выводить новости из указанного rss канала.

    Дополнительные ссылки:
    Тема с лаунчером: http://www.rubukkit.org/threads/78493/
    UPD: новая версия с поддержкой HTTP_MT_ZIP прикреплена к посту, файл server_2.zip
    UPD: поддержка RSS новостей (Спасибо @General за идею)
     

    Вложения:

    • server.zip
      Размер файла:
      1,4 КБ
      Просмотров:
      20
    • server_2.zip
      Размер файла:
      4,8 КБ
      Просмотров:
      21
    Последнее редактирование: 15 окт 2014
  2. Хостинг MineCraft
    <
  3. KPbIWKA

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

    Баллы:
    68
    Имя в Minecraft:
    KPbIWKA
    Не особо понял для чего это тут....:confused:
     
  4. Автор темы
    danilko

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

    Баллы:
    103
    Для лаунчера, просто в отдельную тему вынес веб часть.
     
  5. STRELOK2022

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

    Баллы:
    88
    Skype:
    blogofcoder
    Имя в Minecraft:
    STRELOK2022
    Зачем?
     
  6. Автор темы
    danilko

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

    Баллы:
    103
    Захотелось мне так )
    Я потом буду наращивать функционал и для решения вопросов конкретно по обвязке и нужна будет эта тема.
     
  7. mc-luxe

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

    Баллы:
    88
    Имя в Minecraft:
    Hello
    Чувак, у тя есть будущее, со следущей версии, начинай авторизацией :3
     
  8. Автор темы
    danilko

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

    Баллы:
    103
    Это сарказм был или нет?)
    Я сейчас сразу CMS делаю чтоб потом не связывать по отдельности кучу отдельных скриптов.
     
  9. mc-luxe

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

    Баллы:
    88
    Имя в Minecraft:
    Hello
    Та не, просто говорю займись более функциональным лаунчером, (такие как, Sashok724, JCR), надо помнить, что время изготовления лаунчера покажет его великолепие.
     
  10. Автор темы
    danilko

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

    Баллы:
    103
    UPD добавлена поддержка rss новостей.[DOUBLEPOST=1414933161,1413400293][/DOUBLEPOST]Итак, я добрался до разработки веб-части :)
    Пишите чего сделать, что добавить, сегодня, надеюсь, уже какую-нибудь бетку сделаю.[DOUBLEPOST=1414955621][/DOUBLEPOST]Бетки сегодня не будет...[DOUBLEPOST=1414956203][/DOUBLEPOST]В общем взял за основу свою старую cms "MSC: WebSite Engine" и начал смотреть что вообще там есть, ну и собственно кроме кучи костылей и багов ничего путного не нашел )
    Но нашел пару интересных багов при исправлении которых система просто падает или начинает себя вести не так как должна)
    Сейчас поставил себе задачу исправить все баги, в том числе "магические" и оптимизировать все. (Да ещё и вытащить из БД половину системы)
    P.s. Ну я и наговнокодил :)
     

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