открыть ajax.php  и найти:

'manage_group'      => array('user'),

после вставить:

'UserStats'         => array('user'),

найти:

function manage_user()
    {
        require(AJAX_DIR . 'manage_user.php');
    }

после вставить:

function UserStats()
    {
        require(AJAX_DIR .'UserStats.php');
    }

открыть config.php и найти:

// Atom feed
$bb_cfg['atom'] = array(
    'path' => INT_DATA_DIR .'atom',                   // without ending slash
    'url'  => './internal_data/atom',                 // without ending slash
);

после вставить:

$bb_cfg['userstat'] = array(
    'cache'     => 60,
);


в 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();
}

заменить на:

if ($bb_cfg['bt_show_dl_stat_on_index'] && !IS_GUEST)
{
    show_bt_userdata_only();
}

функции заменить на эти:

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);
            }
        }
    };
}