$this->prompt_for_confirm($msg); } } change_tor_status($attach_id, $new_status); $this->response['status'] = $bb_cfg['tor_icons'][$new_status] . ' <b> ' . $lang['TOR_STATUS_NAME'][$new_status] . '</b> · ' . profile_url($userdata) . ' · <i>' . delta_time(TIMENOW) . $lang['TOR_BACK'] . '</i>'; if ($bb_cfg['tor_comment'] && ($comment && $comment != $lang['COMMENT'] || in_array($new_status, $bb_cfg['tor_reply']))) { if ($tor['poster_id'] > 0) { $subject = sprintf($lang['TOR_MOD_TITLE'], $tor['topic_title']); $message = sprintf($lang['TOR_MOD_MSG'], get_username($tor['poster_id']), make_url(TOPIC_URL . $tor['topic_id']), $bb_cfg['tor_icons'][$new_status] . ' ' . $lang['TOR_STATUS_NAME'][$new_status]); if ($comment && $comment != $lang['COMMENT']) { $message .= "\n\n[b]" . $lang['COMMENT'] . '[/b]: ' . $comment; } send_pm($tor['poster_id'], $subject, $message, $userdata['user_id']); cache_rm_user_sessions($tor['poster_id']); } } break; case 'status_reply': if (!$bb_cfg['tor_comment']) { $this->ajax_die($lang['MODULE_OFF']); } $subject = sprintf($lang['TOR_AUTH_TITLE'], $tor['topic_title']); $message = sprintf($lang['TOR_AUTH_MSG'], get_username($tor['checked_user_id']), make_url(TOPIC_URL . $tor['topic_id']), $tor['topic_title']); if ($comment && $comment != $lang['COMMENT']) { $message .= "\n\n[b]" . $lang['COMMENT'] . '[/b]: ' . $comment; } send_pm($tor['checked_user_id'], $subject, $message, $userdata['user_id']); cache_rm_user_sessions($tor['checked_user_id']); break; } $this->response['attach_id'] = $attach_id;
$table = BB_BT_USERS; $value = (double) str_replace(',', '.', $this->request['value']); foreach (array('KB' => 1, 'MB' => 2, 'GB' => 3, 'TB' => 4) as $s => $m) { if (strpos($this->request['value'], $s) !== false) { $value *= pow(1024, $m); break; } } $value = sprintf('%.0f', $value); $this->response['new_value'] = humn_size($value, null, null, ' '); if (!($btu = get_bt_userdata($user_id))) { require INC_DIR . 'functions_torrent.php'; generate_passkey($user_id, true); $btu = get_bt_userdata($user_id); } $btu[$field] = $value; $this->response['update_ids']['u_ratio'] = (string) get_bt_ratio($btu); break; case 'user_points': $value = htmlCHR($value); $value = (double) str_replace(',', '.', $this->request['value']); $value = sprintf('%.2f', $value); $this->response['new_value'] = $value; break; default: $this->ajax_die("invalid profile field: {$field}"); } $value_sql = DB()->escape($value, true); DB()->query("UPDATE {$table} SET {$field} = {$value_sql} WHERE user_id = {$user_id} LIMIT 1"); cache_rm_user_sessions($user_id); $this->response['edit_id'] = $this->request['edit_id'];
function delete_user_sessions($user_id) { cache_rm_user_sessions($user_id); $user_id = get_id_csv($user_id); DB()->query("DELETE FROM " . SESSIONS_TABLE . " WHERE session_user_id IN({$user_id})"); }
$emailer->send(); $emailer->reset(); $message = $lang['PROFILE_UPDATED_INACTIVE']; $user->session_end(); } else { meta_refresh('index.php', 10); $message = $lang['PROFILE_UPDATED']; } $sql_args = DB()->build_array('UPDATE', $db_data); DB()->query("UPDATE " . BB_USERS . " SET {$sql_args} WHERE user_id = {$pr_data['user_id']} LIMIT 1"); if ($pr_data['user_id'] != $userdata['user_id']) { if ($pr_data['user_level'] == MOD && !empty($db_data['username'])) { $datastore->update('moderators'); } } cache_rm_user_sessions($pr_data['user_id']); if ($adm_edit) { bb_die($lang['PROFILE_USER'] . ' <b>' . profile_url($pr_data) . '</b> ' . $lang['GOOD_UPDATE']); } elseif (!$pr_data['user_active']) { bb_die($lang['PROFILE_UPDATED_INACTIVE']); } else { meta_refresh('index.php', 10); bb_die($lang['PROFILE_UPDATED']); } } else { bb_die($lang['NOTHING_HAS_CHANGED']); } } } $template->assign_vars($tp_data); $template->assign_vars(array('PAGE_TITLE' => $mode == 'editprofile' ? $lang['EDIT_PROFILE'] . ($adm_edit ? " :: {$pr_data['username']}" : '') : $lang['REGISTER'], 'SHOW_REG_AGREEMENT' => $mode == 'register' && !IS_ADMIN, 'ERROR_MESSAGE' => $errors ? join('<br />', array_unique($errors)) : '', 'MODE' => $mode, 'EDIT_PROFILE' => $mode == 'editprofile', 'ADM_EDIT' => $adm_edit, 'SHOW_PASS' => $adm_edit || $mode == 'register' && IS_ADMIN, 'CAPTCHA_HTML' => $need_captcha ? bb_captcha('get') : '', 'LANGUAGE_SELECT' => language_select($pr_data['user_lang'], 'user_lang'), 'TIMEZONE_SELECT' => tz_select($pr_data['user_timezone'], 'user_timezone'), 'USER_TIMEZONE' => $pr_data['user_timezone'], 'AVATAR_EXPLAIN' => sprintf($lang['AVATAR_EXPLAIN'], $bb_cfg['avatars']['max_width'], $bb_cfg['avatars']['max_height'], round($bb_cfg['avatars']['max_size'] / 1024)), 'AVATAR_DISALLOWED' => bf($pr_data['user_opt'], 'user_opt', 'dis_avatar'), 'AVATAR_DIS_EXPLAIN' => sprintf($lang['AVATAR_DISABLE'], $bb_cfg['terms_and_conditions_url']), 'AVATAR_IMG' => get_avatar($pr_data['user_id'], $pr_data['avatar_ext_id'], !bf($pr_data['user_opt'], 'user_opt', 'dis_avatar')), 'SIGNATURE_EXPLAIN' => sprintf($lang['SIGNATURE_EXPLAIN'], $bb_cfg['max_sig_chars']), 'SIG_DISALLOWED' => bf($pr_data['user_opt'], 'user_opt', 'dis_sig'), 'PR_USER_ID' => $pr_data['user_id'], 'U_RESET_AUTOLOGIN' => LOGIN_URL . "?logout=1&reset_autologin=1&sid={$userdata['session_id']}"));
$privmsg_sent_id = DB()->sql_nextid(); $sql = "INSERT INTO " . BB_PRIVMSGS_TEXT . " (privmsgs_text_id, privmsgs_text)\n\t\t\t\tVALUES ({$privmsg_sent_id}, '" . DB()->escape($privmsg_message) . "')"; } else { $sql = "UPDATE " . BB_PRIVMSGS_TEXT . "\n\t\t\t\tSET privmsgs_text = '" . DB()->escape($privmsg_message) . "'\n\t\t\t\tWHERE privmsgs_text_id = {$privmsg_id}"; } if (!DB()->sql_query($sql)) { bb_die('Could not insert / update private message sent text'); } if ($mode != 'edit') { $timenow = TIMENOW; // Add to the users new pm counter $sql = "UPDATE " . BB_USERS . " SET\n\t\t\t\t\tuser_new_privmsg = user_new_privmsg + 1,\n\t\t\t\t\tuser_last_privmsg = {$timenow},\n\t\t\t\t\tuser_newest_pm_id = {$privmsg_sent_id}\n\t\t\t\tWHERE user_id = {$to_userdata['user_id']}\n\t\t\t\tLIMIT 1"; if (!($status = DB()->sql_query($sql))) { bb_die('Could not update private message new / read status for user'); } cache_rm_user_sessions($to_userdata['user_id']); if (bf($to_userdata['user_opt'], 'user_opt', 'user_notify_pm') && $to_userdata['user_active'] && $bb_cfg['pm_notify_enabled']) { require CLASS_DIR . 'emailer.php'; $emailer = new emailer($bb_cfg['smtp_delivery']); $emailer->from($bb_cfg['sitename'] . " <{$bb_cfg['board_email']}>"); $emailer->email_address($to_userdata['username'] . " <{$to_userdata['user_email']}>"); $emailer->use_template('privmsg_notify', $to_userdata['user_lang']); $emailer->assign_vars(array('USERNAME' => html_entity_decode($to_username), 'NAME_FROM' => $userdata['username'], 'MSG_SUBJECT' => html_entity_decode($privmsg_subject), 'SITENAME' => $bb_cfg['sitename'], 'U_INBOX' => make_url(PM_URL . "?folder=inbox&mode=read&p={$privmsg_sent_id}"))); $emailer->send(); $emailer->reset(); } } pm_die($lang['MESSAGE_SENT']); } else { if ($preview || $refresh || $error) { //
$mc_text = (string) $this->request['mc_text']; if (!($mc_text = prepare_message($mc_text))) { $this->ajax_die($lang['EMPTY_MESSAGE']); } $post = DB()->fetch_row("\n\tSELECT\n\t\tp.post_id, p.poster_id\n\tFROM " . BB_POSTS . " p\n\tWHERE p.post_id = {$post_id}\n"); if (!$post) { $this->ajax_die('not post'); } $data = array('mc_comment' => $mc_type ? $mc_text : '', 'mc_type' => $mc_type, 'mc_user_id' => $mc_type ? $userdata['user_id'] : 0); $sql_args = DB()->build_array('UPDATE', $data); DB()->query("UPDATE " . BB_POSTS . " SET {$sql_args} WHERE post_id = {$post_id}"); if ($mc_type && $post['poster_id'] != $userdata['user_id']) { $subject = sprintf($lang['MC_COMMENT_PM_SUBJECT'], $lang['MC_COMMENT'][$mc_type]['type']); $message = sprintf($lang['MC_COMMENT_PM_MSG'], get_username($post['poster_id']), make_url(POST_URL . "{$post_id}#{$post_id}"), $lang['MC_COMMENT'][$mc_type]['type'], $mc_text); send_pm($post['poster_id'], $subject, $message); cache_rm_user_sessions($post['poster_id']); } switch ($mc_type) { case 1: // Комментарий $mc_class = 'success'; break; case 2: // Информация $mc_class = 'info'; break; case 3: // Предупреждение $mc_class = 'warning'; break; case 4: