AJAX-статистика

AJAX-статистика 1.2.0

Нет прав для скачивания

Exile

Администратор
#1
Пользователь Exile разместил новый ресурс:


Please Login or Register to view hidden text.

- Добавляет возможность обновления статистики пользователя по AJAX-запросу.

Описание: добавляет возможность обновления статистики пользователя по AJAX-запросу.

Please Login or Register to view hidden text.

 

dredd

Пользователь
#2
открыть ajax.php и найти:
PHP:
'manage_group'      => array('user'),
после вставить:
PHP:
'UserStats'         => array('user'),
найти:
PHP:
function manage_user()
    {
        require(AJAX_DIR . 'manage_user.php');
    }
после вставить:
PHP:
function UserStats()
    {
        require(AJAX_DIR .'UserStats.php');
    }
открыть config.php и найти:
PHP:
// Atom feed
$bb_cfg['atom'] = array(
    'path' => INT_DATA_DIR .'atom',                   // without ending slash
    'url'  => './internal_data/atom',                 // without ending slash
);
после вставить:
PHP:
$bb_cfg['userstat'] = array(
    'cache'     => 60,
);
в page_header.php найти:
PHP:
if ($bb_cfg['bt_show_dl_stat_on_index'] && !IS_GUEST && !empty($page_cfg['show_dl_stat'][BB_SCRIPT]))
{
   show_bt_userdata_only();
}
заменить на:
PHP:
if ($bb_cfg['bt_show_dl_stat_on_index'] && !IS_GUEST)
{
    show_bt_userdata_only();
}
функции заменить на эти:
PHP:
function get_bt_userdata ($user_id, $update = true)
{
    global $bb_cfg;

    if($update)
    {
        $resoult = DB()->fetch_row("
                            SELECT bt.*, SUM(tr.speed_up) as speed_up, SUM(tr.speed_down) as speed_down
                            FROM      ". BB_BT_USERS   ." bt
                            LEFT JOIN ". BB_BT_TRACKER ." tr ON (bt.user_id = tr.user_id)
                            WHERE bt.user_id = ". (int) $user_id ."
                            GROUP BY bt.user_id
                        ");
        if($resoult)
        {
            $resoult['expire'] = TIMENOW + $bb_cfg['userstat']['cache']*60*60;
            CACHE('bb_cache')->set('userstat['.$user_id.']', $resoult, $bb_cfg['userstat']['cache']*60*60);
        }
    }
    else
    {
        if (!$resoult = CACHE('bb_cache')->get('userstat['.$user_id.']'))
        {
            $resoult = DB()->fetch_row("
                                SELECT bt.*, SUM(tr.speed_up) as speed_up, SUM(tr.speed_down) as speed_down
                                FROM      ". BB_BT_USERS   ." bt
                                LEFT JOIN ". BB_BT_TRACKER ." tr ON (bt.user_id = tr.user_id)
                                WHERE bt.user_id = ". (int) $user_id ."
                                GROUP BY bt.user_id
                            ");
            if($resoult)
            {
                $resoult['expire'] = TIMENOW + $bb_cfg['userstat']['cache']*60*60;
                CACHE('bb_cache')->set('userstat['.$user_id.']', $resoult, $bb_cfg['userstat']['cache']*60*60);
            }
        }
        else
        {
            $resoult = CACHE('bb_cache')->get('userstat['.$user_id.']');
        }
    }

    return $resoult;
}

function show_bt_userdata_only ()
{
    global $lang, $userdata;

    $btu = get_bt_userdata($userdata['user_id'], false);

    $GLOBALS['template']->assign_vars(array(
        'SHOW_BT_RATE' => true,
    ));

    $GLOBALS['template']->assign_block_vars('rate', array(
        'UP_TOTAL'            => humn_size($btu['u_up_total']),
        'UP_BONUS'            => humn_size($btu['u_up_bonus']),
        'RELEASED'            => humn_size($btu['u_up_release']),
        'DOWN_TOTAL'          => humn_size($btu['u_down_total']),
        'DOWN_TOTAL_BYTES'    => $btu['u_down_total'],
        'USER_RATIO'          => get_bt_ratio($btu),
        'MIN_DL_FOR_RATIO'    => humn_size(MIN_DL_FOR_RATIO),
        'MIN_DL_BYTES'        => MIN_DL_FOR_RATIO,
        'AUTH_KEY'            => ($btu['auth_key']) ? $btu['auth_key'] : $lang['NONE'],

        'TD_DL'                => humn_size($btu['down_today']),
        'TD_UL'                => humn_size($btu['up_today']),
        'TD_REL'               => humn_size($btu['up_release_today']),
        'TD_BONUS'             => humn_size($btu['up_bonus_today']),
        'TD_POINTS'            => ($btu['auth_key']) ? $btu['points_today'] : '0.00',

        'YS_DL'                => humn_size($btu['down_yesterday']),
        'YS_UL'                => humn_size($btu['up_yesterday']),
        'YS_REL'               => humn_size($btu['up_release_yesterday']),
        'YS_BONUS'             => humn_size($btu['up_bonus_yesterday']),
        'YS_POINTS'            => ($btu['auth_key']) ? $btu['points_yesterday'] : '0.00',

        'SPEED_UP'             => humn_size($btu['speed_up'], 0, 'KB') .'/s',
        'SPEED_DOWN'           => humn_size($btu['speed_down'], 0, 'KB') .'/s',
        'TIME_UDATE_STATS'     => bb_date($btu['expire']),
        'POINTS'               => $userdata['user_points'],
        'USER_ID'              => $userdata['user_id'],
        'AVATAR'               => get_avatar($userdata['user_id'], $userdata['avatar_ext_id'], !bf($userdata['user_opt'], 'user_opt', 'dis_avatar')),
    ));
}
содержимое opt.js заменить на это:
Код:
function user_stats(user_id, mode) {
    ajax.exec({
        action  : 'UserStats',
        user_id : user_id,
        mode     : mode,
    });
    ajax.callback.UserStats = function(data) {
        if(data.popup){
            $('#user_popup').html(data.html);
        }
        if(data.stats){
            var $root = $('#user_ratio.ajax_user_' + user_id);
            var rootOn = $($root).attr('data-userstats');
            if(rootOn == 'true'){
                $('#ajax_userratio', $root).html(data.ratio);
                $('#ajax_userdownloaded', $root).html(data.downloaded);
                $('#ajax_useruploaded', $root).html(data.uploaded);
                $('#ajax_userrelesed', $root).html(data.relesed);
                $('#ajax_userbonus', $root).html(data.bonus);
                $('#ajax_userseedbonus', $root).html(data.seedbonus);
                $('#update_userstat', $root).html(data.time_update);
            }
        }
    };
}
файл UserStats.php заменить на тот, что в архиве)
усё, можно пользоваться) может, что-то забыл, отписывайтесь, не стесняйтесь)
 

Вложения

Kryl

Пользователь
#7
Спасибо.
Ну , а вывод где происходит , что в page_header.tpl вставлять ?
 

Virtuoz

Пользователь
#8
Спасибо.
Ну , а вывод где происходит , что в page_header.tpl вставлять ?
page_header.tpl найти

<!-- IF SHOW_BT_USERDATA --><div id="user_ratio">
<h3>{L_USER_RATIO}</h3>
<table cellpadding="0">
<div align="center">{THIS_AVATAR}</div>
<tr><td>{L_USER_RATIO}</td><td><!-- IF DOWN_TOTAL_BYTES gt MIN_DL_BYTES --><b>{USER_RATIO}</b><!-- ELSE --><b>{L_NONE}</b> (DL < {MIN_DL_FOR_RATIO})<!-- ENDIF --></td></tr>
<tr><td>{L_DOWNLOADED}</td><td class="leechmed"><b>{DOWN_TOTAL}</b></td></tr>
<tr><td>{L_UPLOADED}</td><td class="seedmed"><b>{UP_TOTAL}</b></td></tr>
<tr><td>{L_RELEASED}</td><td class="seedmed">{RELEASED}</td></tr>
<tr><td>{L_BONUS}</td><td class="seedmed">{UP_BONUS}</td></tr>
<!-- IF $bb_cfg['seed_bonus_enabled'] --><tr><td>{L_SEED_BONUS}</td><td><a href="profile.php?mode=bonus"><span class="points bold">{POINTS}</span></a></td></tr><!-- ENDIF -->
</table>
</div><!-- ENDIF -->

заменить на

<!-- IF SHOW_BT_RATE -->
<!-- BEGIN rate -->
<div id="user_ratio" class="ajax_user_{rate.USER_ID}" data-userstats="true">
<h3>{L_USER_RATIO} <span id="update_userstat" onclick="user_stats({rate.USER_ID}, 'stats')" class="clickable" data-tooltip="true" title="Обновить статистику.(Авто обновление будет: {rate.TIME_UDATE_STATS} )">[{L_UPDATE}]</span></h3>
<table cellpadding="0">
<div align="center">{rate.AVATAR}</div>
<tr><td>{L_USER_RATIO}</td><td id="ajax_userratio"><!-- IF rate.DOWN_TOTAL_BYTES gt rate.MIN_DL_BYTES --><b>{rate.USER_RATIO}</b><!-- ELSE --><b>{L_NONE}</b> (DL < {rate.MIN_DL_FOR_RATIO})<!-- ENDIF --></td></tr>
<tr><td>{L_DOWNLOADED}</td><td class="leechmed"><b id="ajax_userdownloaded">{rate.DOWN_TOTAL}</b></td></tr>
<tr><td>{L_UPLOADED}</td><td class="seedmed"><b id="ajax_useruploaded">{rate.UP_TOTAL}</b></td></tr>
<tr><td>{L_RELEASED}</td><td class="seedmed" id="ajax_userrelesed">{rate.RELEASED}</td></tr>
<tr><td>{L_BONUS}</td><td class="seedmed" id="ajax_userbonus">{rate.UP_BONUS}</td></tr>
<!-- IF $bb_cfg['seed_bonus_enabled'] --><tr><td>{L_SEED_BONUS}</td><td><a href="profile.php?mode=bonus"><span class="points bold" id="ajax_userseedbonus">{rate.POINTS}</span></a></td></tr><!-- ENDIF -->
</table>
</div>
<!-- END rate -->
<!-- ENDIF -->

P.S. взято с интала но не адаптировано
 

Kryl

Пользователь
#10
В в page_header.php нет такого ..
if ($bb_cfg['bt_show_dl_stat_on_index'] && !IS_GUEST && !empty($page_cfg['show_dl_stat'][BB_SCRIPT]))
{show_bt_userdata_only();
}
 
Сверху