request['mode']) { $this->ajax_die('invalid mode (empty)'); } $html = ''; switch($mode) { case 'birthday_week': $datastore->enqueue(array( 'stats', )); $users = array(); $stats = $datastore->get('stats'); if ($stats['birthday_week_list']) { foreach($stats['birthday_week_list'] as $week) { $users[] = profile_url($week) .' ('. birthday_age(date('Y-m-d', strtotime('-1 year', strtotime($week['user_birthday'])))) .')'; } $html = sprintf($lang['BIRTHDAY_WEEK'], $bb_cfg['birthday_check_day'], join(', ', $users)); } else $html = sprintf($lang['NOBIRTHDAY_WEEK'], $bb_cfg['birthday_check_day']); break; case 'birthday_today': $datastore->enqueue(array( 'stats', )); $users = array(); $stats = $datastore->get('stats'); if ($stats['birthday_today_list']) { foreach($stats['birthday_today_list'] as $today) { $users[] = profile_url($today) .' ('. birthday_age($today['user_birthday']) .')'; } $html = $lang['BIRTHDAY_TODAY'] . join(', ', $users); } else $html = $lang['NOBIRTHDAY_TODAY']; break; case 'get_forum_mods': $forum_id = (int) $this->request['forum_id']; $datastore->enqueue(array( 'moderators', )); $moderators = array(); $mod = $datastore->get('moderators'); if (isset($mod['mod_users'][$forum_id])) { foreach ($mod['mod_users'][$forum_id] as $user_id) { $moderators[] = ''. $mod['name_users'][$user_id] .''; } } if (isset($mod['mod_groups'][$forum_id])) { foreach ($mod['mod_groups'][$forum_id] as $group_id) { $moderators[] = ''. $mod['name_groups'][$group_id] .''; } } $html = ': '; $html .= ($moderators) ? join(', ', $moderators) : $lang['NONE']; unset($moderators, $mod); $datastore->rm('moderators'); break; case 'change_tz': $tz = (float) $this->request['tz']; if ($tz != $bb_cfg['board_timezone']) { // Set current user timezone DB()->query("UPDATE ". BB_USERS ." SET user_timezone = $tz WHERE user_id = ". $userdata['user_id'] ." LIMIT 1"); $bb_cfg['board_timezone'] = $tz; cache_rm_user_sessions ($userdata['user_id']); } break; case 'get_traf_stats': if (IS_GUEST) { $this->ajax_die($lang['NEED_TO_LOGIN_FIRST']); } $user_id = (int) $this->request['user_id']; $btu = get_bt_userdata($user_id); $profiledata = get_userdata($user_id); $speed_up = ($btu['speed_up']) ? humn_size($btu['speed_up']).'/s' : '0 KB/s'; $speed_down = ($btu['speed_down']) ? humn_size($btu['speed_down']).'/s' : '0 KB/s'; $user_ratio = ($btu['u_down_total'] > MIN_DL_FOR_RATIO) ? ''. get_bt_ratio($btu) .'' : $lang['IT_WILL_BE_DOWN'] .' '. humn_size(MIN_DL_FOR_RATIO) .''; $html = ' '. $lang['DOWNLOADED'] .' '. $lang['UPLOADED'] .' '. $lang['RELEASED'] .' '. $lang['BONUS'] .''; $html .= ($bb_cfg['seed_bonus_enabled']) ? ''. $lang['SEED_BONUS'] .'' : ''; $html .= ' '. $lang['TOTAL_TRAF'] .' '. humn_size($btu['u_down_total']) .' ' .humn_size($btu['u_up_total']) .' '. humn_size($btu['u_up_release']) .' '. humn_size($btu['u_up_bonus']) .''; $html .= ($bb_cfg['seed_bonus_enabled']) ? ''. $profiledata['user_points'] .'' : ''; $html .= ' '. $lang['MAX_SPEED'] .' '. $lang['DL_DL_SPEED'] .': '. $speed_down .' '. $lang['DL_UL_SPEED'] .': '. $speed_up .''; $html .= ($bb_cfg['seed_bonus_enabled']) ? '' : ''; $html .= ''; $this->response['user_ratio'] = ' '. $lang['USER_RATIO'] .': '. $user_ratio .' '; break; default: $this->ajax_die('Invalid mode: ' . $mode); break; } $this->response['html'] = $html; $this->response['mode'] = $mode;