| 1 |
<?php |
|---|
| 2 |
|
|---|
| 3 |
<span class="code-comment"> * admin_users.php |
|---|
| 4 |
* ------------------- |
|---|
| 5 |
* begin : Saturday, Feb 13, 2001 |
|---|
| 6 |
* copyright : (C) 2001 The phpBB Group |
|---|
| 7 |
* email : support@phpbb.com |
|---|
| 8 |
* |
|---|
| 9 |
* $Id: admin_users.php,v 1.57.2.29 2005/10/30 15:17:13 acydburn Exp $ |
|---|
| 10 |
* |
|---|
| 11 |
* |
|---|
| 12 |
***************************************************************************/ |
|---|
| 13 |
|
|---|
| 14 |
/*************************************************************************** |
|---|
| 15 |
* |
|---|
| 16 |
* This program is free software; you can redistribute it and/or modify |
|---|
| 17 |
* it under the terms of the GNU General Public License as published by |
|---|
| 18 |
* the Free Software Foundation; either version 2 of the License, or |
|---|
| 19 |
* (at your option) any later version. |
|---|
| 20 |
* |
|---|
| 21 |
***************************************************************************/ |
|---|
| 22 |
|
|---|
| 23 |
if( !empty($setmodules) )</span> |
|---|
| 24 |
<span class="code-keyword">{ |
|---|
| 25 |
$filename = basename(__FILE__); |
|---|
| 26 |
$module['users']['manage'] = $filename; |
|---|
| 27 |
|
|---|
| 28 |
return; |
|---|
| 29 |
} |
|---|
| 30 |
|
|---|
| 31 |
define('IN_PHPBB', 1); |
|---|
| 32 |
|
|---|
| 33 |
$root_path = './../';</span> |
|---|
| 34 |
<span class="code-lang">require($root_path . 'extension.inc'); |
|---|
| 35 |
require('./pagestart.' . $phpEx); |
|---|
| 36 |
require($root_path . 'phpBB2/includes/bbcode.'.$phpEx); |
|---|
| 37 |
require($root_path . 'phpBB2/includes/functions_post.'.$phpEx); |
|---|
| 38 |
require($root_path . 'include/functions_selects.'.$phpEx); |
|---|
| 39 |
require($root_path . 'include/functions_check.'.$phpEx); |
|---|
| 40 |
|
|---|
| 41 |
@include ($root_path . 'languages/lang_' . $config['default_lang'] . '/lang_modcomment_log.php'); |
|---|
| 42 |
|
|---|
| 43 |
$html_entities_match = array('#<#', '#>#'); |
|---|
| 44 |
$html_entities_replace = array('<', '>'); |
|---|
| 45 |
$modcomment = array(); |
|---|
| 46 |
|
|---|
| 47 |
|
|---|
| 48 |
<span class="code-comment">// Set mode |
|---|
| 49 |
// |
|---|
| 50 |
$mode = request_var('mode', ''); |
|---|
| 51 |
|
|---|
| 52 |
|
|---|
| 53 |
<span class="code-comment">// Begin program |
|---|
| 54 |
// |
|---|
| 55 |
|
|---|
| 56 |
switch ( $mode ) {</span> |
|---|
| 57 |
<span class="code-keyword"> |
|---|
| 58 |
case 'save': |
|---|
| 59 |
$user_id = request_var('id', 0); |
|---|
| 60 |
|
|---|
| 61 |
if ( isset($_POST['submit']) ) { |
|---|
| 62 |
if ( !($this_userdata = get_userdata($user_id)) ) { |
|---|
| 63 |
trigger_error($lang['no_user_id_specified'] ); |
|---|
| 64 |
return; |
|---|
| 65 |
} |
|---|
| 66 |
|
|---|
| 67 |
if( isset($_POST['deleteuser']) && ( $userdata['uid'] != $user_id ) ) { |
|---|
| 68 |
require_once ($root_path . 'include/functions_delete.'.$phpEx); |
|---|
| 69 |
$users_id = array($user_id); |
|---|
| 70 |
deleteuser($users_id); |
|---|
| 71 |
|
|---|
| 72 |
$message = $lang['user_deleted'] . '<br /><br />' . sprintf($lang['click_return_useradmin'], '<a href="' . append_sid("admin_users.$phpEx") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>'); |
|---|
| 73 |
|
|---|
| 74 |
trigger_error($message); |
|---|
| 75 |
return; |
|---|
| 76 |
} |
|---|
| 77 |
|
|---|
| 78 |
$check_fields_ary = array( |
|---|
| 79 |
'username' => '', |
|---|
| 80 |
'email' => '', |
|---|
| 81 |
'password' => '', |
|---|
| 82 |
'password_confirm' => '', |
|---|
| 83 |
'user_avatar' => '', |
|---|
| 84 |
'icq' => '', |
|---|
| 85 |
'aim' => '', |
|---|
| 86 |
'msn' => '', |
|---|
| 87 |
'yim' => '', |
|---|
| 88 |
'skype' => '', |
|---|
| 89 |
'user_sig' => '', |
|---|
| 90 |
'notifypm' => '', |
|---|
| 91 |
'parked' => 0, |
|---|
| 92 |
'accept_pm' => 1, |
|---|
| 93 |
'deletepms' => 0, |
|---|
| 94 |
'savepms' => 0, |
|---|
| 95 |
'commentpm' => 0, |
|---|
| 96 |
'gender' => 0, |
|---|
| 97 |
'language' => $config['default_lang'], |
|---|
| 98 |
'country' => 1, |
|---|
| 99 |
'timezone' => $config['board_timezone'], |
|---|
| 100 |
'dst' => $config['board_dst'], |
|---|
| 101 |
'torrents_per_page' => 0, |
|---|
| 102 |
'show_avatars' => 0, |
|---|
| 103 |
'donor' => 0, |
|---|
| 104 |
'hidden_torrents' => 0, |
|---|
| 105 |
'autodemote' => 0, |
|---|
| 106 |
'title' => '', |
|---|
| 107 |
'autodemote' => 0, |
|---|
| 108 |
'account_status' => 0, |
|---|
| 109 |
'user_status' => 0, |
|---|
| 110 |
'invites' => 0, |
|---|
| 111 |
'add_upload' => 0.0, |
|---|
| 112 |
'add_upload_reason' => '', |
|---|
| 113 |
'privacy' => PRIVACY_LEVEL_LOW, |
|---|
| 114 |
'upload' => 0, |
|---|
| 115 |
'download' => 0, |
|---|
| 116 |
'year' => 0, |
|---|
| 117 |
'month' => 0, |
|---|
| 118 |
'day' => 0, |
|---|
| 119 |
'bonus' => 0 |
|---|
| 120 |
); |
|---|
| 121 |
|
|---|
| 122 |
foreach ( $check_fields_ary AS $field => $def_value ) { |
|---|
| 123 |
$$field = request_var($field, $def_value); |
|---|
| 124 |
} |
|---|
| 125 |
|
|---|
| 126 |
$signature = str_replace('<br />', "\n", $user_sig); |
|---|
| 127 |
$notifypm = ''; |
|---|
| 128 |
|
|---|
| 129 |
validate_optional_fields($icq, $aim, $msn, $yim, $skype, $signature); |
|---|
| 130 |
|
|---|
| 131 |
$user_lang = $language; |
|---|
| 132 |
$user_country = $country; |
|---|
| 133 |
$user_timezone = $timezone; |
|---|
| 134 |
$user_dst = $dst; |
|---|
| 135 |
|
|---|
| 136 |
$error = FALSE; |
|---|
| 137 |
$error_msg = ''; |
|---|
| 138 |
$updateset = array(); |
|---|
| 139 |
|
|---|
| 140 |
if ($username != $this_userdata['name']) |
|---|
| 141 |
{ |
|---|
| 142 |
unset($rename_user); |
|---|
| 143 |
|
|---|
| 144 |
if ( utf_strtolower($username) != utf_strtolower($this_userdata['name']) ) |
|---|
| 145 |
{ |
|---|
| 146 |
$result = check_username($username); |
|---|
| 147 |
if ( $result['error'] ) |
|---|
| 148 |
{ |
|---|
| 149 |
$error = TRUE; |
|---|
| 150 |
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $result['error_msg']; |
|---|
| 151 |
} |
|---|
| 152 |
else if ( utf_strtolower(str_replace("\\'", "''", $username)) == utf_strtolower($userdata['name']) ) |
|---|
| 153 |
{ |
|---|
| 154 |
$error = TRUE; |
|---|
| 155 |
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['username_taken']; |
|---|
| 156 |
} |
|---|
| 157 |
} |
|---|
| 158 |
|
|---|
| 159 |
if (!$error) |
|---|
| 160 |
{ |
|---|
| 161 |
$updateset[] = "name = '" . $db->sql_escape($username) . "'"; |
|---|
| 162 |
$rename_user = $username; |
|---|
| 163 |
} |
|---|
| 164 |
} |
|---|
| 165 |
|
|---|
| 166 |
$passwd_changed = false; |
|---|
| 167 |
if( !empty($password) && !empty($password_confirm) ) |
|---|
| 168 |
{ |
|---|
| 169 |
|
|---|
| 170 |
// Awww, the user wants to change their password, isn't that cute.. |
|---|
| 171 |
// |
|---|
| 172 |
if( $password != $password_confirm ) { |
|---|
| 173 |
$error = TRUE; |
|---|
| 174 |
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['password_mismatch']; |
|---|
| 175 |
} |
|---|
| 176 |
else |
|---|
| 177 |
{ |
|---|
| 178 |
$secret = mksecret(); |
|---|
| 179 |
$password = md5($secret . $password . $secret); |
|---|
| 180 |
$passwd_changed = true; |
|---|
| 181 |
|
|---|
| 182 |
$updateset[] = "pass = '" . $db->sql_escape($password) . "'"; |
|---|
| 183 |
$updateset[] = "secret = '" . $db->sql_escape($secret) . "'"; |
|---|
| 184 |
} |
|---|
| 185 |
} |
|---|
| 186 |
else if( $password && !$password_confirm ) |
|---|
| 187 |
{ |
|---|
| 188 |
$error = TRUE; |
|---|
| 189 |
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['password_mismatch']; |
|---|
| 190 |
} |
|---|
| 191 |
else if( !$password && $password_confirm ) |
|---|
| 192 |
{ |
|---|
| 193 |
$error = TRUE; |
|---|
| 194 |
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . $lang['password_mismatch']; |
|---|
| 195 |
} |
|---|
| 196 |
|
|---|
| 197 |
if ( $signature != '' ) |
|---|
| 198 |
{ |
|---|
| 199 |
$sig_length_check = preg_replace('/(\[.*?)(=.*?)\]/is', '\\1]', $signature); |
|---|
| 200 |
|
|---|
| 201 |
$signature = prepare_message($signature, $config['allow_html'], $config['allow_bbcode'], $config['allow_smilies']); |
|---|
| 202 |
|
|---|
| 203 |
if ( strlen($sig_length_check) > $config['max_sig_chars'] ) |
|---|
| 204 |
{ |
|---|
| 205 |
$error = TRUE; |
|---|
| 206 |
$error_msg .= ( ( isset($error_msg) ) ? '<br />' : '' ) . sprintf($lang['signature_too_long'], $config['max_sig_chars']); |
|---|
| 207 |
} |
|---|
| 208 |
} |
|---|
| 209 |
|
|---|
| 210 |
if( isset($_POST['avatardel']) ) |
|---|
| 211 |
{ |
|---|
| 212 |
$updateset[] = "avatar = ''"; |
|---|
| 213 |
} |
|---|
| 214 |
|
|---|
| 215 |
if ( $user_avatar && $user_avatar != $this_userdata['avatar'] && strpos($user_avatar, 'user_avatar_' . $this_userdata['uid']) === false && $config['allow_avatar_remote'] ) { |
|---|
| 216 |
if ( $error = check_remote_avatar($user_avatar) ) { |
|---|
| 217 |
$error = true; |
|---|
| 218 |
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $error : $error; |
|---|
| 219 |
} |
|---|
| 220 |
|
|---|
| 221 |
$updateset[] = "avatar = '" . $db->sql_escape($user_avatar) . "'"; |
|---|
| 222 |
} |
|---|
| 223 |
if ( isset($_FILES['avatar_upload']) && !empty($_FILES['avatar_upload']['name']) && $config['allow_avatar_upload'] ) { |
|---|
| 224 |
$user_avatar = check_upload_image($_FILES['avatar_upload'], $config['avatar_path'] . '/', $config['avatar_filesize'], $config['avatar_max_height'], $config['avatar_max_width'], 'user_avatar_' . $this_userdata['uid']); |
|---|
| 225 |
$user_avatar = $user_avatar['filename']; |
|---|
| 226 |
|
|---|
| 227 |
$updateset[] = "avatar = '" . $db->sql_escape($user_avatar) . "'"; |
|---|
| 228 |
} |
|---|
| 229 |
|
|---|
| 230 |
if( !check_internet_speed($download) || !check_internet_speed($upload) ) |
|---|
| 231 |
{ |
|---|
| 232 |
$error = true; |
|---|
| 233 |
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $lang['speed_invalid'] : $lang['speed_invalid']; |
|---|
| 234 |
} |
|---|
| 235 |
else { |
|---|
| 236 |
$updateset[] = "upload = '" . $db->sql_escape($upload) . "'"; |
|---|
| 237 |
$updateset[] = "download = '" . $db->sql_escape($download) . "'"; |
|---|
| 238 |
} |
|---|
| 239 |
|
|---|
| 240 |
if ( !checkdate($month, $day, $year) ) |
|---|
| 241 |
{ |
|---|
| 242 |
$error = true; |
|---|
| 243 |
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $lang['birthday_invalid'] : $lang['birthday_invalid']; |
|---|
| 244 |
} |
|---|
| 245 |
else { |
|---|
| 246 |
$user_birthday = $year . '-' . $month . '-' . $day; |
|---|
| 247 |
$updateset[] = "birthday = '" . $db->sql_escape($user_birthday) . "'"; |
|---|
| 248 |
} |
|---|
| 249 |
|
|---|
| 250 |
if ( isset($_POST['reset_passkey']) ) { |
|---|
| 251 |
$torrent_pass = md5($this_userdata['name'] . time() . $this_userdata['pass']); |
|---|
| 252 |
|
|---|
| 253 |
$updateset[] = "torrent_pass = '" . $db->sql_escape($torrent_pass) . "'"; |
|---|
| 254 |
} |
|---|
| 255 |
|
|---|
| 256 |
if ( $user_status != $this_userdata['enabled'] ) { |
|---|
| 257 |
$modcomment[] = sprintf($lang['modcomment_account_enabled_disabled'], 't' . time(), ( $user_status ? $lang['enabled'] : $lang['disabled'] ), $userdata['name'] ); |
|---|
| 258 |
} |
|---|
| 259 |
|
|---|
| 260 |
if ( !empty($add_upload) && empty($add_upload_reason) ) { |
|---|
| 261 |
$error = true; |
|---|
| 262 |
$error_msg = ( !empty($error_msg) ) ? $error_msg . "<br />" . $lang['add_upload_js_failed'] : $lang['add_upload_js_failed']; |
|---|
| 263 |
} |
|---|
| 264 |
|
|---|
| 265 |
if ( $add_upload ) { |
|---|
| 266 |
$updateset[] = 'uploaded = uploaded + ' . $add_upload * 1024 * 1024 * 1024; |
|---|
| 267 |
$modcomment[] = sprintf($lang['modcomment_add_upload_text'], 't' . time(), $add_upload, $userdata['name'], $add_upload_reason ); |
|---|
| 268 |
} |
|---|
| 269 |
|
|---|
| 270 |
if ( $bonus ) { |
|---|
| 271 |
$updateset[] = 'total_seed_time = total_seed_time + ' . ( ( 3600 * $bonus ) / $config['my_bonus_points'] ); |
|---|
| 272 |
$modcomment[] = sprintf($lang['modcomment_add_bonus_text'], 't' . time(), $bonus, $userdata['name']); |
|---|
| 273 |
} |
|---|
| 274 |
|
|---|
| 275 |
if ( sizeof($modcomment) ) { |
|---|
| 276 |
$updateset[] = 'modcomment = \'' . $db->sql_escape($this_userdata['modcomment'] . "\n" . implode("\n", $modcomment)) . '\''; |
|---|
| 277 |
} |
|---|
| 278 |
|
|---|
| 279 |
|
|---|
| 280 |
// Update entry in DB |
|---|
| 281 |
// |
|---|
| 282 |
if( !$error ) |
|---|
| 283 |
{ |
|---|
| 284 |
$user_notify = request_var('user_notify', array(''=>0)); |
|---|
| 285 |
foreach ( $user_notify AS $key => $val ) { |
|---|
| 286 |
$notifypm .= '[' . $key . ']'; |
|---|
| 287 |
} |
|---|
| 288 |
|
|---|
| 289 |
$sql = 'SELECT id FROM ' . CATEGORIES_TABLE; |
|---|
| 290 |
$result = $db->sql_query($sql); |
|---|
| 291 |
while ( $row = $db->sql_fetchrow($result) ) { |
|---|
| 292 |
if ( isset($_POST['cat' . $row['id']]) ) { |
|---|
| 293 |
$notifypm .= '[cat' . $row['id'] . ']'; |
|---|
| 294 |
} |
|---|
| 295 |
} |
|---|
| 296 |
|
|---|
| 297 |
$updateset[] = "email = '" . $db->sql_escape($email) . "'"; |
|---|
| 298 |
$updateset[] = "icq = '" . $db->sql_escape($icq) . "'"; |
|---|
| 299 |
$updateset[] = "aim = '" . $db->sql_escape($aim) . "'"; |
|---|
| 300 |
$updateset[] = "yahoo = '" . $db->sql_escape($yim) . "'"; |
|---|
| 301 |
$updateset[] = "msn = '" . $db->sql_escape($msn) . "'"; |
|---|
| 302 |
$updateset[] = "skype = '" . $db->sql_escape($skype) . "'"; |
|---|
| 303 |
$updateset[] = "enabled = '" . $db->sql_escape($user_status) . "'"; |
|---|
| 304 |
$updateset[] = "tzoffset = '" . $db->sql_escape($user_timezone) . "'"; |
|---|
| 305 |
$updateset[] = "user_dst = '" . $db->sql_escape($user_dst) . "'"; |
|---|
| 306 |
$updateset[] = "notifs = '" . $db->sql_escape($notifypm) . "'"; |
|---|
| 307 |
$updateset[] = "parked = '" . $db->sql_escape($parked) . "'"; |
|---|
| 308 |
$updateset[] = "acceptpms = '" . $db->sql_escape($accept_pm) . "'"; |
|---|
| 309 |
$updateset[] = "savepms = '" . $db->sql_escape($savepms) . "'"; |
|---|
| 310 |
$updateset[] = "deletepms = '" . $db->sql_escape($deletepms) . "'"; |
|---|
| 311 |
$updateset[] = "commentpm = '" . $db->sql_escape($commentpm) . "'"; |
|---|
| 312 |
$updateset[] = "gender = '" . $db->sql_escape($gender) . "'"; |
|---|
| 313 |
$updateset[] = "country = '" . $db->sql_escape($user_country) . "'"; |
|---|
| 314 |
$updateset[] = "torrentsperpage = '" . $db->sql_escape($torrents_per_page) . "'"; |
|---|
| 315 |
$updateset[] = "avatars = '" . $db->sql_escape($show_avatars) . "'"; |
|---|
| 316 |
$updateset[] = "donor = '" . $db->sql_escape($donor) . "'"; |
|---|
| 317 |
$updateset[] = "title = '" . $db->sql_escape($title) . "'"; |
|---|
| 318 |
$updateset[] = "hiddentorrents = '" . $db->sql_escape($hidden_torrents) . "'"; |
|---|
| 319 |
$updateset[] = "autodemote = '" . $db->sql_escape($autodemote) . "'"; |
|---|
| 320 |
$updateset[] = "status = '" . $db->sql_escape($account_status) . "'"; |
|---|
| 321 |
$updateset[] = "invites = '" . $db->sql_escape($invites) . "'"; |
|---|
| 322 |
$updateset[] = "status = '" . $db->sql_escape($account_status) . "'"; |
|---|
| 323 |
$updateset[] = "user_sig = '" . $db->sql_escape($signature) . "'"; |
|---|
| 324 |
$updateset[] = "privacy = '" . $db->sql_escape($privacy) . "'"; |
|---|
| 325 |
$updateset[] = "language = '" . $db->sql_escape($user_lang) . "'"; |
|---|
| 326 |
|
|---|
| 327 |
|
|---|
| 328 |
$sql = 'UPDATE ' . USERS_TABLE . ' SET ' . implode(', ', $updateset) . ' WHERE uid = ' . $user_id; |
|---|
| 329 |
$result = $db->sql_query($sql); |
|---|
| 330 |
|
|---|
| 331 |
if( isset($rename_user) ) |
|---|
| 332 |
{ |
|---|
| 333 |
$sql = "UPDATE " . GROUPS_TABLE . " |
|---|
| 334 |
SET group_name = '".str_replace("\'", "''", $rename_user)."' |
|---|
| 335 |
WHERE group_name = '".str_replace("'", "''", $this_userdata['name'] )."'"; |
|---|
| 336 |
$result = $db->sql_query($sql); |
|---|
| 337 |
} |
|---|
| 338 |
|
|---|
| 339 |
|
|---|
| 340 |
if ( !$user_status ) |
|---|
| 341 |
{ |
|---|
| 342 |
$sql = "DELETE FROM " . SESSIONS_TABLE . " |
|---|
| 343 |
WHERE session_user_id = " . $user_id; |
|---|
| 344 |
$db->sql_query($sql); |
|---|
| 345 |
} |
|---|
| 346 |
|
|---|
| 347 |
|
|---|
| 348 |
// and change the current one (if applicable) |
|---|
| 349 |
if ( $passwd_changed ) |
|---|
| 350 |
{ |
|---|
| 351 |
session_reset_keys($user_id, $user_ip); |
|---|
| 352 |
} |
|---|
| 353 |
|
|---|
| 354 |
$message = $lang['admin_user_updated']; |
|---|
| 355 |
|
|---|
| 356 |
$message .= '<br /><br />' . sprintf($lang['click_return_useradmin'], '<a href="' . append_sid("admin_users.$phpEx") . '">', '</a>') . '<br /><br />' . sprintf($lang['click_return_admin_index'], '<a href="' . append_sid("index.$phpEx?pane=right") . '">', '</a>'); |
|---|
| 357 |
|
|---|
| 358 |
trigger_error($message); |
|---|
| 359 |
return; |
|---|
| 360 |
} |
|---|
| 361 |
else |
|---|
| 362 |
{ |
|---|
| 363 |
trigger_error($error_msg); |
|---|
| 364 |
} |
|---|
| 365 |
} |
|---|
| 366 |
break; |
|---|
| 367 |
|
|---|
| 368 |
case 'edit': |
|---|
| 369 |
$user_id = request_var(POST_USERS_URL, 0); |
|---|
| 370 |
$username = request_var('username', ''); |
|---|
| 371 |
|
|---|
| 372 |
if ( $user_id ) { |
|---|
| 373 |
$this_userdata = get_userdata($user_id); |
|---|
| 374 |
} |
|---|
| 375 |
else { |
|---|
| 376 |
$this_userdata = get_userdata($username, true); |
|---|
| 377 |
} |
|---|
| 378 |
|
|---|
| 379 |
if( !$this_userdata ) |
|---|
| 380 |
{ |
|---|
| 381 |
trigger_error($lang['no_user_id_specified'] ); |
|---|
| 382 |
return; |
|---|
| 383 |
} |
|---|
| 384 |
|
|---|
| 385 |
// Now parse and display it as a template |
|---|
| 386 |
// |
|---|
| 387 |
$user_id = $this_userdata['uid']; |
|---|
| 388 |
$username = $this_userdata['name']; |
|---|
| 389 |
$email = $this_userdata['email']; |
|---|
| 390 |
$password = ''; |
|---|
| 391 |
$password_confirm = ''; |
|---|
| 392 |
|
|---|
| 393 |
$icq = $this_userdata['icq']; |
|---|
| 394 |
$aim = str_replace('+', ' ', $this_userdata['aim'] ); |
|---|
| 395 |
$msn = $this_userdata['msn']; |
|---|
| 396 |
$yim = $this_userdata['yahoo']; |
|---|
| 397 |
$skype = $this_userdata['skype']; |
|---|
| 398 |
|
|---|
| 399 |
$user_avatar = $this_userdata['avatar']; |
|---|
| 400 |
|
|---|
| 401 |
$signature = $this_userdata['user_sig']; |
|---|
| 402 |
$signature = preg_replace($html_entities_match, $html_entities_replace, $signature); |
|---|
| 403 |
|
|---|
| 404 |
$parked = ( $this_userdata['parked'] ? 1 : 0 ); |
|---|
| 405 |
$accept_pm = $this_userdata['acceptpms']; |
|---|
| 406 |
$delete_pms = $this_userdata['deletepms']; |
|---|
| 407 |
$save_pms = $this_userdata['savepms']; |
|---|
| 408 |
$commentpm = $this_userdata['commentpm']; |
|---|
| 409 |
$gender = $this_userdata['gender']; |
|---|
| 410 |
|
|---|
| 411 |
$user_lang = $this_userdata['language']; |
|---|
| 412 |
$user_country = $this_userdata['country']; |
|---|
| 413 |
$user_timezone = $this_userdata['tzoffset']; |
|---|
| 414 |
|
|---|
| 415 |
$user_dst = $this_userdata['user_dst']; |
|---|
| 416 |
|
|---|
| 417 |
$user_birthday = $this_userdata['birthday']; |
|---|
| 418 |
$torrents_per_page = intval($this_userdata['torrentsperpage']); |
|---|
| 419 |
$show_avatars = $this_userdata['avatars']; |
|---|
| 420 |
$donor = ( $this_userdata['donor'] ? 1 : 0 ); |
|---|
| 421 |
$title = $this_userdata['title']; |
|---|
| 422 |
$hidden_torrents = ( $this_userdata['hiddentorrents'] ? 1 : 0 ); |
|---|
| 423 |
$autodemote = ( $this_userdata['autodemote'] ? 1 : 0 ); |
|---|
| 424 |
$account_status = ( $this_userdata['status'] ? 1 : 0 ); |
|---|
| 425 |
|
|---|
| 426 |
$user_status = $this_userdata['enabled']; |
|---|
| 427 |
$invites = intval($this_userdata['invites']); |
|---|
| 428 |
$bonus = number_format( $config['my_bonus_points'] * ( $this_userdata['total_seed_time'] / 3600 ), 2 ); |
|---|
| 429 |
|
|---|
| 430 |
|
|---|
| 431 |
$s_hidden_fields = '<input type="hidden" name="mode" value="save" /><input type="hidden" name="agreed" value="true" />'; |
|---|
| 432 |
$s_hidden_fields .= '<input type="hidden" name="id" value="' . $this_userdata['uid'] . '" />'; |
|---|
| 433 |
$s_hidden_fields .= '<input type="hidden" name="add_upload_reason" value="" />'; |
|---|
| 434 |
|
|---|
| 435 |
|
|---|
| 436 |
$avatar = get_user_avatar($this_userdata['uid'], $this_userdata['avatar']); |
|---|
| 437 |
$avatar = ( $this_userdata['avatar']? ' <img src="' . $avatar . '" alt="" />' : '' ); |
|---|
| 438 |
|
|---|
| 439 |
$cats = $cache->obtain_cats(); |
|---|
| 440 |
|
|---|
| 441 |
if ( $cats ) { |
|---|
| 442 |
$catsperrow = 2; |
|---|
| 443 |
$cats_split_row = $catsperrow - 1; |
|---|
| 444 |
$row = 0; |
|---|
| 445 |
$col = 0; |
|---|
| 446 |
|
|---|
| 447 |
foreach ( $cats AS $cat_id => $cat_ary ) { |
|---|
| 448 |
if (!$col) { |
|---|
| 449 |
$template->assign_block_vars('cats_row', array()); |
|---|
| 450 |
} |
|---|
| 451 |
$template->assign_block_vars('cats_row.cats_col', array( |
|---|
| 452 |
'CAT_ID' => $cat_id, |
|---|
| 453 |
'CAT_NAME' => $cat_ary['cat_name'], |
|---|
| 454 |
'CHECKED' => ( strpos($this_userdata['notifs'], '[cat' . $cat_id . ']') !== false ? ' checked="checked"' : "") |
|---|
| 455 |
)); |
|---|
| 456 |
|
|---|
| 457 |
if ( $col == $cats_split_row ) { |
|---|
| 458 |
$col = 0; |
|---|
| 459 |
$row++; |
|---|
| 460 |
} |
|---|
| 461 |
else { |
|---|
| 462 |
$col++; |
|---|
| 463 |
} |
|---|
| 464 |
} |
|---|
| 465 |
if ( $col ) { |
|---|
| 466 |
$template->assign_block_vars('cats_row.colspan', array( |
|---|
| 467 |
'CATS_COLSPAN' => ( $catsperrow - $col ) |
|---|
| 468 |
)); |
|---|
| 469 |
} |
|---|
| 470 |
} |
|---|
| 471 |
$uploadspeed = generate_internet_speed($this_userdata['upload'], 'upload'); |
|---|
| 472 |
$downloadspeed = generate_internet_speed($this_userdata['download'], 'download'); |
|---|
| 473 |
$countries = countries_select($user_country); |
|---|
| 474 |
$birthday_select = birthday_select(substr($this_userdata['birthday'], 0, 4), substr($this_userdata['birthday'], 5, 2), substr($this_userdata['birthday'], 8, 2)); |
|---|
| 475 |
|
|---|
| 476 |
$privacy_input = '<input type="radio" name="privacy" id="privacy" value="' . PRIVACY_LEVEL_LOW . '"' . ( $this_userdata['privacy'] == PRIVACY_LEVEL_LOW ?' checked="checked"':'') . ' /> ' . $lang['low']; |
|---|
| 477 |
$privacy_input .= ' <input type="radio" name="privacy" id="privacy" value="' . PRIVACY_LEVEL_NORMAL . '"' . ( $this_userdata['privacy'] == PRIVACY_LEVEL_NORMAL ?' checked="checked"':'') . ' /> ' . $lang['normal']; |
|---|
| 478 |
$privacy_input .= ' <input type="radio" name="privacy" id="privacy" value="' . PRIVACY_LEVEL_HIGH . '"' . ( $this_userdata['privacy'] == PRIVACY_LEVEL_HIGH ?' checked="checked"':'') . ' /> ' . $lang['high']; |
|---|
| 479 |
|
|---|
| 480 |
$notifs = array('pm', 'forum', 'comments'); |
|---|
| 481 |
|
|---|
| 482 |
$notifs_options = ''; |
|---|
| 483 |
foreach ( $notifs AS $_null => $val ) { |
|---|
| 484 |
$name = 'user_notify[' . $val . ']'; |
|---|
| 485 |
$notifs_options .= '<input type="checkbox" id="' . $name . '" name="' . $name . '"' . ( strpos($this_userdata['notifs'], '[' . $val . ']') !== false ? ' checked="checked"' : '' ) . ' value="1" /> ' . $lang['email_notifis_' . $val] . '<br />'; |
|---|
| 486 |
} |
|---|
| 487 |
|
|---|
| 488 |
$template->set_filenames(array( |
|---|
| 489 |
"body" => "../admin/user_edit_body.tpl" |
|---|
| 490 |
)); |
|---|
| 491 |
|
|---|
| 492 |
|
|---|
| 493 |
// Let's do an overall check for settings/versions which would prevent |
|---|
| 494 |
// us from doing file uploads.... |
|---|
| 495 |
// |
|---|
| 496 |
$ini_val = ( phpversion() >= '4.0.0' ) ? 'ini_get' : 'get_cfg_var'; |
|---|
| 497 |
$form_enctype = ( !@$ini_val('file_uploads') || phpversion() == '4.0.4pl1' || ( phpversion() < '4.0.3' && @$ini_val('open_basedir') != '' ) ) ? '' : 'enctype="multipart/form-data"'; |
|---|
| 498 |
|
|---|
| 499 |
$template->assign_vars(array( |
|---|
| 500 |
'USERNAME' => $username, |
|---|
| 501 |
'EMAIL' => $email, |
|---|
| 502 |
'YIM' => $yim, |
|---|
| 503 |
'ICQ' => $icq, |
|---|
| 504 |
'MSN' => $msn, |
|---|
| 505 |
'AIM' => $aim, |
|---|
| 506 |
'SKYPE' => $skype, |
|---|
| 507 |
'SIGNATURE' => str_replace('<br />', "\n", $signature), |
|---|
| 508 |
'NOTIFY_OPTIONS' => $notifs_options, |
|---|
| 509 |
'PARKED_YES' => ( $parked ) ? 'checked="checked"' : '', |
|---|
| 510 |
'PARKED_NO' => ( !$parked ) ? 'checked="checked"' : '', |
|---|
| 511 |
'ACCEPT_PM_ALL' => ( $accept_pm == 1) ? 'checked="checked"':'', |
|---|
| 512 |
'ACCEPT_PM_FRIENDS' => ( $accept_pm == 2) ? 'checked="checked"':'', |
|---|
| 513 |
'ACCEPT_PM_ADMIN' => ( !$accept_pm) ? 'checked="checked"':'', |
|---|
| 514 |
'SAVE_PM' => ( $save_pms ) ? 'checked="checked"':'', |
|---|
| 515 |
'DELETE_PM' => ( $delete_pms ) ? 'checked="checked"':'', |
|---|
| 516 |
'COMMENT_PM_YES' => ( $commentpm ) ? 'checked="checked"':'', |
|---|
| 517 |
'COMMENT_PM_NO' => ( !$commentpm ) ? 'checked="checked"':'', |
|---|
| 518 |
'UPLOAD_SPEED_SELECT' => $uploadspeed, |
|---|
| 519 |
'DOWNLOAD_SPEED_SELECT' => $downloadspeed, |
|---|
| 520 |
'GENDER_MALE' => ( !$gender ) ? 'checked="checked"':'', |
|---|
| 521 |
'GENDER_FEMALE' => ( $gender ) ? 'checked="checked"':'', |
|---|
| 522 |
'SHOW_AVATARS' => ($show_avatars) ? 'checked="checked"':'', |
|---|
| 523 |
'DONOR_YES' => ( $donor ) ? 'checked="checked"' : '', |
|---|
| 524 |
'DONOR_NO' => ( !$donor ) ? 'checked="checked"' : '', |
|---|
| 525 |
'TITLE' => $title, |
|---|
| 526 |
'HIDDEN_TORRENTS_YES' => ( $hidden_torrents ) ? 'checked="checked"' : '', |
|---|
| 527 |
'HIDDEN_TORRENTS_NO' => ( !$hidden_torrents ) ? 'checked="checked"' : '', |
|---|
| 528 |
'AUTODEMOTE_YES' => ( $autodemote ) ? 'checked="checked"' : '', |
|---|
| 529 |
'AUTODEMOTE_NO' => ( !$autodemote ) ? 'checked="checked"' : '', |
|---|
| 530 |
'ACCOUNT_CONFIRMED_SELECTED' => ( $account_status ) ? 'selected="selected"': '', |
|---|
| 531 |
'ACCOUNT_PENDING_SELECTED' => ( !$account_status ) ? 'selected="selected"': '', |
|---|
| 532 |
|
|---|
| 533 |
'LANGUAGE_SELECT' => language_select($user_lang), |
|---|
| 534 |
'TIMEZONE_SELECT' => tz_select($user_timezone), |
|---|
| 535 |
|
|---|
| 536 |
'DST_YES' => ($user_dst) ? 'checked="checked"' : '', |
|---|
| 537 |
'DST_NO' => (!$user_dst) ? 'checked="checked"' : '', |
|---|
| 538 |
|
|---|
| 539 |
'COUNTRIES_SELECT' => $countries, |
|---|
| 540 |
'BIRTHDAY_SELECT' => $birthday_select, |
|---|
| 541 |
'TORRENTS_PER_PAGE' => $torrents_per_page, |
|---|
| 542 |
'USER_ACTIVE_YES' => ( $user_status ) ? 'checked="checked"' : '', |
|---|
| 543 |
'USER_ACTIVE_NO' => ( !$user_status ) ? 'checked="checked"' : '', |
|---|
| 544 |
'INVITES' => $invites, |
|---|
| 545 |
'AVATAR' => $avatar, |
|---|
| 546 |
'PRIVACY_INPUT' => $privacy_input, |
|---|
| 547 |
'L_SIGNATURE_EXPLAIN' => sprintf($lang['signature_explain'], $config['max_sig_chars'] ), |
|---|
| 548 |
'L_DELETE_ACCOUNT_CONFIRM' => sprintf($lang['delete_account_confirm'], $username), |
|---|
| 549 |
|
|---|
| 550 |
'L_SPECIAL' => $lang['user_special'], |
|---|
| 551 |
'L_SPECIAL_EXPLAIN' => $lang['user_special_explain'], |
|---|
| 552 |
'L_USER_ACTIVE' => $lang['user_status'], |
|---|
| 553 |
|
|---|
| 554 |
'L_NOTIFY_ON_REPLY' => $lang['email_notifis_forum'], |
|---|
| 555 |
'L_NOTIFY_PM' => $lang['email_notifis_pm'], |
|---|
| 556 |
'L_PROFILE_INFO_NOTICE' => $lang['profile_info_warn'], |
|---|
| 557 |
'S_FORM_ENCTYPE' => $form_enctype, |
|---|
| 558 |
|
|---|
| 559 |
'L_AVATAR_EXPLAIN' => $lang['admin_avatar_explain'], |
|---|
| 560 |
'L_DELETE_AVATAR' => $lang['delete_image'], |
|---|
| 561 |
'L_AVATAR_GALLERY' => $lang['select_from_gallery'], |
|---|
| 562 |
'L_SHOW_GALLERY' => $lang['view_avatar_gallery'], |
|---|
| 563 |
|
|---|
| 564 |
'L_DELETE_USER' => $lang['user_delete'], |
|---|
| 565 |
'L_DELETE_USER_EXPLAIN' => $lang['user_delete_explain'], |
|---|
| 566 |
'L_SELECT_RANK' => $lang['rank_title'], |
|---|
| 567 |
|
|---|
| 568 |
'L_ADD_UPLOAD_JS_CONFIRM' => str_replace("'", "\'", $lang['add_upload_js_confirm']), |
|---|
| 569 |
'L_ADD_UPLOAD_JS_REASON' => str_replace("'", "\'", $lang['add_upload_js_reason']), |
|---|
| 570 |
'L_ADD_UPLOAD_JS_FAILED' => str_replace("'", "\'", $lang['add_upload_js_failed']), |
|---|
| 571 |
|
|---|
| 572 |
'S_HIDDEN_FIELDS' => $s_hidden_fields, |
|---|
| 573 |
'S_PROFILE_ACTION' => append_sid("admin_users.$phpEx"), |
|---|
| 574 |
|
|---|
| 575 |
'BONUS' => $bonus |
|---|
| 576 |
)); |
|---|
| 577 |
|
|---|
| 578 |
$template->display('body'); |
|---|
| 579 |
break; |
|---|
| 580 |
|
|---|
| 581 |
default: |
|---|
| 582 |
|
|---|
| 583 |
// Default user selection box |
|---|
| 584 |
// |
|---|
| 585 |
$template->set_filenames(array( |
|---|
| 586 |
'body' => '../admin/user_select_body.tpl' |
|---|
| 587 |
)); |
|---|
| 588 |
|
|---|
| 589 |
$template->assign_vars(array( |
|---|
| 590 |
'L_USER_TITLE' => $lang['user_admin'], |
|---|
| 591 |
'L_USER_EXPLAIN' => $lang['user_admin_explain'], |
|---|
| 592 |
|
|---|
| 593 |
'U_SEARCH_USER' => append_sid($root_path . "/phpbb2.php?page=search&mode=searchuser"), |
|---|
| 594 |
|
|---|
| 595 |
'S_USER_ACTION' => append_sid("admin_users.$phpEx") ) |
|---|
| 596 |
); |
|---|
| 597 |
$template->display('body'); |
|---|
| 598 |
break; |
|---|
| 599 |
} |
|---|
| 600 |
|
|---|
| 601 |
include('./page_footer_admin.'.$phpEx); |
|---|
| 602 |
|
|---|
| 603 |
?> |
|---|