Страница 1 из 4

Вывод списка игроков клана на своём сайте v2

СообщениеДобавлено: 14 сен 2011, 16:27
Edrard
Я немного переделал скрипт, с учетом всех предложений и пожеланий, не только тех которые были здесь, но и у меня на форуме. Добавил сигнатуры от emem.ru, имена стали ссылками на офф статистику, добавил Количество дней в клане, и счетчик количества игроков в клане. А вы уже дальше удаляйте что вам ненужно.

Не забудьте изменить $clan_id = '1'; на id вашего клана

Как всегда, пример можете посмотреть тут - https://wot-news.com/1/1.php

UPD. 16.09.2011

* Добавлена проверка, жив ли emem.ru

UPD. 07.11.2011

* Апдейт скрипта в связи с изменениями на главном сайте.

<?php
    header("Content-type: text/html; charset=utf-8");
    $clan_id = '1';
    $request = "GET /uc/clans/".$clan_id."/members/?type=table HTTP/1.0\r\n";
    $request.= "Accept: text/html, */*\r\n";
    $request.= "User-Agent: Mozilla/3.0 (compatible; easyhttp)\r\n";
    $request.= "X-Requested-With: XMLHttpRequest\r\n";
    $request.= "Host: worldoftanks.ru\r\n";
    $request.= "Connection: Keep-Alive\r\n";
    $request.= "\r\n";

    $wot_host="worldoftanks.ru";

    $fp = fsockopen("worldoftanks.ru", 80, $errno, $errstr, 60);
    if (!$fp) {
        echo "$errstr ($errno)<br>\n";
    } else {
        fwrite($fp, $request);
        $page = '';
        while (!feof($fp)) {
            $page .= fgets($fp, 4096);
        }
        fclose($fp);
    }
    preg_match_all("/{\"request_data\":(.*?),\"result\":\"success\"}/", $page, $matches);
    $new = (json_decode($matches[0][0], true));
    //print_r($new);
    $headers = @get_headers('http://emem.ru', 1);
    if($headers[0] == 'HTTP/1.1 200 OK'){
        $mark = '';
    }

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Список клана</title>

        <link rel="stylesheet" href="http://tablesorter.ru/docs/css/jq.css" type="text/css" media="print, projection, screen" /> 
        <link rel="stylesheet" href="http://tablesorter.ru/themes/blue/style.css" type="text/css" media="print, projection, screen" /> 
        <script type="text/javascript" src="http://tablesorter.ru/jquery-latest.js"></script> 
        <script type="text/javascript" src="http://tablesorter.ru/jquery.tablesorter.js"></script> 
        <script type="text/javascript"> 
            $(document).ready(function() { 
                // теперь по умолчанию у нас всегда будет запускаться виджет зебра 
                $.tablesorter.defaults.widgets = ['zebra']; 
                // теперь по умолчанию всегда будем сортировать по первой колонке 
                $.tablesorter.defaults.sortList = [[0,0]]; 
                // вызов плагина 
                $("table").tablesorter();
            });    
        </script> 
        <style>
            .num {
                font-size: 17px;
                font-weight: bold;
            }
        </style>
    </head>
    <body>
        <div align="center">
            <table class="tablesorter" cellspacing="1" style="width: 1000px;">              
                <thead> 
                    <tr>
                        <th>Имя</th> 
                        <th>ID</th> 
                        <th>Состоит в клане</th>
                        <th>Дней в клане</th> 
                        <th>Звание</th>
                        <?php if(isset($mark)){ ?>
                            <th>Сигнатура и статистика</th> 
                            <?php } ?> 
                    </tr>  
                </thead>
<tbody>
                    <?php foreach($new['request_data']['items'] as $val){ 
                            $new_time = date('Y.m.d',$val['member_since']);
                        ?>  
                        <tr> 
                            <td><a href="http://challenge.worldoftanks.ru/uc/accounts/<?php echo $val['account_id']; ?>-<?php echo $val['name']; ?>" 
                                    target="_blank"><?php echo $val['name']; ?></a></td> 
                            <td><?php echo $val['account_id']; ?></td> 
                            <td><?php echo $new_time; ?></td>
                            <td><?php echo floor((time() - mktime(0, 0, 0, date("m", $val['member_since']), date("d", $val['member_since']), date("Y", $val['member_since'])))/(3600*24)); ?></td> 
                            <td><?php echo $val['role']; ?></td>
                            <?php if(isset($mark)){ ?>
                                <td align="center"><a href="http://emem.ru/WoT/history/<?php echo $val['name']; ?>/" target="_blank">
                                        <img src="http://emem.ru/WoT/stat/<?php echo $val['account_id']; ?>/sv22-default.png" 
                                            alt="<?php echo $val['name']; ?>" title="Просмотреть подробную статистику игрока 
                                            <?php echo $val['name']; ?>"></a></td>
                                <?php } ?>  
                        </tr>
                        <?php } ?>
                </tbody>  
            </table>
            <p class="num">Всего игроков: <?php echo count($new['request_data']['items']) ?></p>
        </div> 
    </body>
</html>

Re: Вывод списка игроков клана на своём сайте v2

СообщениеДобавлено: 14 сен 2011, 17:16
bazker
Добрый день.
Пытаюсь впихнуть ваш скрипт в блок своего клана на blogspot.com
Не получается. Судя по всему скрипт не выполняется. Можете помочь?

Re: Вывод списка игроков клана на своём сайте v2

СообщениеДобавлено: 14 сен 2011, 17:30
Edrard
Попробуйте еще раз, просто установил новый плагин для подсветки синтаксиса, а он воспринял \n как переход на новую строку, а это на самом деле не так.

Re: Вывод списка игроков клана на своём сайте v2

СообщениеДобавлено: 14 сен 2011, 18:13
Mooskat
bazker писал(а):Добрый день.
Пытаюсь впихнуть ваш скрипт в блок своего клана на blogspot.com
Не получается. Судя по всему скрипт не выполняется. Можете помочь?

Слонярааа и ты здесь! ))) А вообще поддерживаю скрипт полезный

Правда у меня на сайте с кодировкой косяки были - у меня сайт на 1251 работает и при вставке этого скрипта весь сайт в кракозябрах был :(

Re: Вывод списка игроков клана на своём сайте v2

СообщениеДобавлено: 14 сен 2011, 19:33
Edrard
Это естественно, так как это не просто скрипт, а уже готовая страница, просто попросите кого-то знакомого с HTML, что бы он помог вставить данный код вам на страничку, при этом убрал лишний хидер.
По поводу windows1251 вот было решение -

надо убрать первую строку -

Код: Выделить всёheader("Content-type: text/html; charset=utf-8"); 


а затем конвертироваться записи в windows 1251, иначе никак, просто официальный сайт работает в utf-8 и соответственно отдает все в этом формате.

Код: Выделить всё
<td><?php echo "<a href=http://challenge.worldoftanks.ru/uc/accounts/".iconv("UTF-8""windows-1251",$val['account_id'])." target=top>".iconv("UTF-8""windows-1251",$val['name'])."</a>"?></td>


Это для столбика имен. Используя функцию iconv можно по аналогии переписать везде.

Re: Вывод списка игроков клана на своём сайте v2

СообщениеДобавлено: 15 сен 2011, 10:16
bazker
Admin писал(а):Попробуйте еще раз, просто установил новый плагин для подсветки синтаксиса, а он воспринял \n как переход на новую строку, а это на самом деле не так.

как я понимаю проблема в том, что блогспот не дает пхп скрипту выполняться. в результате - пустая таблица. как обойти - не знаю.


ПС Мускат. привет.

Re: Вывод списка игроков клана на своём сайте v2

СообщениеДобавлено: 15 сен 2011, 15:08
stailx1
может вы протупили и вставляете пхп в НТМЛ страницу? ю таком случае лучше залить скрипт отдельным файлом и загрузить через iframe

Re: Вывод списка игроков клана на своём сайте v2

СообщениеДобавлено: 15 сен 2011, 16:50
bazker
stailx1 писал(а):может вы протупили и вставляете пхп в НТМЛ страницу? ю таком случае лучше залить скрипт отдельным файлом и загрузить через iframe

Именно.
Можно подробнее об обертке?

Re: Вывод списка игроков клана на своём сайте v2

СообщениеДобавлено: 15 сен 2011, 18:17
Mooskat
Проблема в том, что если емем слёг как сегодня весь день, то таблица не грузит сигнатуры.
Отсюда предложение - возможно ли дописать скрипт, чтобы скрипт грузил все сигнатуры к себе в папку и затем использовал их?

Re: Вывод списка игроков клана на своём сайте v2

СообщениеДобавлено: 16 сен 2011, 13:46
stailx1
советую емем не загружать без необходимости, иначе чем больше народу будет пользоваться скриптом, тем больше вероятность что админ емема пережит эту фичу. т.к. на эмем нагрузка идет нефиговая.

по поводу загрузки создаем на хосте файл типа clan.php в него заливаем скрипт,
потом на нужно странице в нужном месте пишем
<iframe src="путь к вашему файлу clan.php " ></iframe> более подробный мануал по этому тегу лежит сдесь. http://htmlbook.ru/html/iframe