Example #1
0
function assign_pct_badge($is_user, $item, $percentiles, $badges)
{
    for ($i = 0; $i < 3; $i++) {
        if ($item->expavg_credit >= $percentiles[$i]) {
            assign_badge($is_user, $item, $badges[$i]);
            unassign_badges($is_user, $item, $badges, $i);
            return;
        }
    }
    unassign_badges($is_user, $item, $badges, -1);
}
Example #2
0
function assign_sub_badge($is_user, $item, $levels, $badges, $where_clause)
{
    if ($is_user) {
        $sub_total = BoincCreditUser::sum('total', "where userid=" . $item->id . " and ({$where_clause})");
    } else {
        $sub_total = BoincCreditTeam::sum('total', "where teamid=" . $item->id . " and ({$where_clause})");
    }
    // count from highest to lowest level, so the user get's assigned the
    // highest possible level and the lower levels get removed
    //
    for ($i = count($levels) - 1; $i >= 0; $i--) {
        if ($sub_total >= $levels[$i]) {
            assign_badge($is_user, $item, $badges[$i]);
            unassign_badges($is_user, $item, $badges, $i);
            return;
        }
    }
    // no level could be assigned so remove them all
    //
    unassign_badges($is_user, $item, $badges, -1);
}