1<?php 2/*************************************************************************** 3* copyright : (C) 2001-2003 Advanced Internet Designs Inc. 4* email : forum@prohost.org 5* $Id: register.php.t 21069 2010-03-25 22:47:48Z Caeies $ 6* 7* This program is free software; you can redistribute it and/or modify it 8* under the terms of the GNU General Public License as published by the 9* Free Software Foundation; either version 2 of the License, or 10* (at your option) any later version. 11***************************************************************************/ 12 13/*{PRE_HTML_PHP}*/ 14 15/* Create a list of avaliable themes */ 16function create_theme_select($name, $def=null) 17{ 18 $theme_select_values = ''; 19 $r = uq("SELECT id, name FROM {SQL_TABLE_PREFIX}themes WHERE theme_opt>=1 AND (theme_opt & 1) > 0 ORDER BY id ASC"); 20 while ($t = db_rowarr($r)) { 21 $selected = $t[0] == $def ? ' selected' : ''; 22 $theme_select_values .= '{TEMPLATE: theme_select_value}'; 23 } 24 25 return '{TEMPLATE: theme_select}'; 26} 27 28function fetch_img($url, $user_id) 29{ 30 $ext = array(1=>'gif', 2=>'jpg', 3=>'png', 4=>'swf'); 31 list($max_w, $max_y) = explode('x', $GLOBALS['CUSTOM_AVATAR_MAX_DIM']); 32 if (!($img_info = @getimagesize($url)) || $img_info[0] > $max_w || $img_info[1] > $max_y || $img_info[2] > ($GLOBALS['FUD_OPT_1'] & 64 ? 4 : 3)) { 33 return; 34 } 35 if (!($img_data = file_get_contents($url))) { 36 return; 37 } 38 $name = $user_id . '.' . $ext[$img_info[2]]. '_'; 39 40 while (($fp = fopen(($path = tempnam($GLOBALS['TMP'], $name)), 'ab'))) { 41 if (!ftell($fp)) { /* make sure that the temporary file picked, did not exist before, yes, this is paranoid. */ 42 break; 43 } 44 } 45 fwrite($fp, $img_data); 46 fclose($fp); 47 48 return $path; 49} 50 /* intialize error status */ 51 $GLOBALS['error'] = 0; 52 53function check_passwd($id, $passwd) 54{ 55 return q_singleval("SELECT login FROM {SQL_TABLE_PREFIX}users WHERE id=".$id." AND passwd='".md5($passwd)."'"); 56} 57 58function sanitize_url($url) 59{ 60 if (!$url) { 61 return; 62 } 63 64 if (strncasecmp($url, 'http://', strlen('http://')) && strncasecmp($url, 'https://', strlen('https://')) && strncasecmp($url, 'ftp://', strlen('ftp://'))) { 65 if (stristr($url, 'javascript:')) { 66 return ''; 67 } else { 68 return 'http://' . $url; 69 } 70 } 71 return $url; 72} 73 74function register_form_check($user_id) 75{ 76 $_POST['reg_home_page'] = sanitize_url(trim($_POST['reg_home_page'])); 77 $_POST['reg_user_image'] = isset($_POST['reg_user_image']) ? sanitize_url(trim($_POST['reg_user_image'])) : ''; 78 79 if (!empty($_POST['reg_icq']) && !(int)$_POST['reg_icq']) { /* ICQ # can only be an integer */ 80 $_POST['reg_icq'] = ''; 81 } 82 83 /* Image count check */ 84 if ($GLOBALS['FORUM_IMG_CNT_SIG'] && $GLOBALS['FORUM_IMG_CNT_SIG'] < substr_count(strtolower($_POST['reg_sig']), '[img]') ) { 85 set_err('reg_sig', '{TEMPLATE: register_err_toomanyimages}'); 86 } 87 88 /* Url Avatar check */ 89 if (!empty($_POST['reg_avatar_loc']) && !($GLOBALS['reg_avatar_loc_file'] = fetch_img($_POST['reg_avatar_loc'], $user_id))) { 90 set_err('avatar', '{TEMPLATE: register_err_not_valid_img}'); 91 } 92 93 if ($GLOBALS['FORUM_SIG_ML'] && strlen($_POST['reg_sig']) > $GLOBALS['FORUM_SIG_ML']) { 94 set_err('reg_sig', '{TEMPLATE: register_err_sig_too_long}'); 95 } 96 97 return $GLOBALS['error']; 98} 99 100function fmt_year($val) 101{ 102 if (!($val = (int)$val)) { 103 return; 104 } 105 if ($val > 1000) { 106 return $val; 107 } else if ($val < 100 && $val > 10) { 108 return (1900 + $val); 109 } else if ($val < 10) { 110 return (2000 + $val); 111 } 112} 113 114function set_err($err_name, $err_msg) 115{ 116 $GLOBALS['error'] = 1; 117 if (isset($GLOBALS['err_msg'])) { 118 array_push($GLOBALS['err_msg'], array($err_name => $err_msg)); 119 } else { 120 $GLOBALS['err_msg'] = array($err_name => $err_msg); 121 } 122} 123 124function draw_err($err_name) 125{ 126 if (!isset($GLOBALS['err_msg'][$err_name])) { 127 return; 128 } 129 return '{TEMPLATE: register_error}'; 130} 131 132function make_avatar_loc($path, $disk, $web) 133{ 134 $img_info = @getimagesize($disk . $path); 135 136 if ($img_info[2] < 4 && $img_info[2] > 0) { 137 return '<img src="'.$web . $path.'" '.$img_info[3].' />'; 138 } else if ($img_info[2] == 4) { 139 return '<embed src="'.$web . $path.'" '.$img_info[3].' />'; 140 } else { 141 return ''; 142 } 143} 144 145function remove_old_avatar($avatar_str) 146{ 147 if (preg_match('!images/custom_avatars/(([0-9]+)\.([A-Za-z]+))" width=!', $avatar_str, $tmp)) { 148 @unlink($GLOBALS['WWW_ROOT_DISK'] . 'images/custom_avatars/' . basename($tmp[1])); 149 } 150} 151 152function decode_uent(&$uent) 153{ 154 reverse_fmt($uent->home_page); 155 reverse_fmt($uent->bio); 156 reverse_fmt($uent->interests); 157 reverse_fmt($uent->occupation); 158 reverse_fmt($uent->location); 159 reverse_fmt($uent->user_image); 160 $uent->aim = urldecode($uent->aim); 161 $uent->yahoo = urldecode($uent->yahoo); 162 $uent->msnm = urldecode($uent->msnm); 163 $uent->jabber = urldecode($uent->jabber); 164 $uent->affero = urldecode($uent->affero); 165} 166 167 if (isset($_GET['mod_id'])) { 168 $mod_id = (int)$_GET['mod_id']; 169 } else if (isset($_POST['mod_id'])) { 170 $mod_id = (int)$_POST['mod_id']; 171 } else { 172 $mod_id = ''; 173 } 174 175 /* allow the root to modify settings other lusers */ 176 if (_uid && $usr->users_opt & 1048576 && $mod_id) { 177 if (!($uent =& usr_reg_get_full($mod_id))) { 178 exit('Invalid User Id'); 179 } 180 decode_uent($uent); 181 } else { 182 $uent =& usr_reg_get_full($usr->id); 183 decode_uent($uent); 184 } 185 186 /* this is a hack, it essentially disables uploading of avatars when file_uploads are off */ 187 if (ini_get("file_uploads") != 1 || !($FUD_OPT_1 & 8)) { 188 $register_enctype = ''; 189 $FUD_OPT_1 = $FUD_OPT_1 &~ 8; 190 } else { 191 $register_enctype = '{TEMPLATE: register_enctype}'; 192 } 193 194 $avatar_tmp = $avatar_arr = null; 195 /* deal with avatars, only done for regged users */ 196 if (!empty($_POST['avatar_tmp'])) { 197 list($avatar_arr['file'], $avatar_arr['del'], $avatar_arr['leave']) = explode("\n", base64_decode($_POST['avatar_tmp'])); 198 } 199 if (isset($_POST['btn_detach']) && isset($avatar_arr)) { 200 $avatar_arr['del'] = 1; 201 } 202 if (!($FUD_OPT_1 & 8) && (!@file_exists($avatar_arr['file']) || empty($avatar_arr['leave']))) { 203 /* hack attempt for URL avatar */ 204 $avatar_arr = null; 205 } else if (($FUD_OPT_1 & 8) && isset($_FILES['avatar_upload']) && $_FILES['avatar_upload']['size'] > 0) { /* new upload */ 206 if ($_FILES['avatar_upload']['size'] >= $CUSTOM_AVATAR_MAX_SIZE) { 207 set_err('avatar', '{TEMPLATE: register_err_avatartobig}'); 208 } else { 209 $ext = array(1=>'gif', 2=>'jpg', 3=>'png', 4=>'swf'); 210 if (!($img_info = @getimagesize($_FILES['avatar_upload']['tmp_name']))) { 211 set_err('avatar', '{TEMPLATE: register_err_not_valid_img}'); 212 } 213 /* [user_id].[file_extension]_'random data' */ 214 $file_name = $uent->id . '.' . $ext[$img_info[2]] . '_'; 215 $tmp_name = safe_tmp_copy($_FILES['avatar_upload']['tmp_name'], 0, $file_name); 216 217 list($max_w, $max_y) = explode('x', $CUSTOM_AVATAR_MAX_DIM); 218 if ($img_info[2] > ($FUD_OPT_1 & 64 ? 4 : 3)) { 219 set_err('avatar', '{TEMPLATE: register_err_avatarnotallowed}'); 220 unlink($TMP . $tmp_name); 221 } else if ($img_info[0] >$max_w || $img_info[1] >$max_y) { 222 set_err('avatar', '{TEMPLATE: register_err_avatardimtobig}'); 223 unlink($TMP . $tmp_name); 224 } else { 225 /* remove old uploaded file, if one exists & is not in DB */ 226 if (empty($avatar_arr['leave']) && @file_exists($avatar_arr['file'])) { 227 @unlink($TMP . $avatar_arr['file']); 228 } 229 230 $avatar_arr['file'] = $tmp_name; 231 $avatar_arr['del'] = 0; 232 $avatar_arr['leave'] = 0; 233 } 234 } 235 } 236 237 if (count($_POST)) { 238 $new_users_opt = 0; 239 foreach (array('display_email', 'notify', 'notify_method', 'ignore_admin', 'email_messages', 'pm_messages', 'pm_notify', 'default_view', 'gender', 'append_sig', 'show_sigs', 'show_avatars', 'show_im', 'invisible_mode') as $v) { 240 if (!empty($_POST['reg_'.$v])) { 241 $new_users_opt |= (int) $_POST['reg_'.$v]; 242 } 243 } 244 /* security check, prevent haxors from passing values that shouldn't */ 245 if (!($new_users_opt & (131072|65536|262144|524288|1048576|2097152|4194304|8388608|16777216))) { 246 $uent->users_opt = ($uent->users_opt & (131072|65536|262144|524288|1048576|2097152|4194304|8388608|16777216)) | $new_users_opt; 247 } 248 } 249 250 /* SUBMITTION CODE */ 251 if (isset($_POST['fud_submit']) && !isset($_POST['btn_detach']) && !isset($_POST['btn_upload']) && !register_form_check($uent->id)) { 252 $old_email = $uent->email; 253 $old_avatar_loc = $uent->avatar_loc; 254 $old_avatar = $uent->avatar; 255 256 /* import data from _POST into $uent object */ 257 $vars = array_keys(get_object_vars($uent)); 258 foreach ($vars as $v) { 259 if (isset($_POST['reg_'.$v])) { 260 $uent->{$v} = $_POST['reg_'.$v]; 261 } 262 } 263 264 $uent->bday = fmt_year($_POST['b_year']) . str_pad((int)$_POST['b_month'], 2, '0', STR_PAD_LEFT) . str_pad((int)$_POST['b_day'], 2, '0', STR_PAD_LEFT); 265 $uent->sig = apply_custom_replace($uent->sig); 266 if ($FUD_OPT_1 & 131072) { 267 $uent->sig = tags_to_html($uent->sig, $FUD_OPT_1 & 524288); 268 } else if ($FUD_OPT_1 & 65536) { 269 $uent->sig = nl2br(htmlspecialchars($uent->sig)); 270 } 271 272 if ($FUD_OPT_1 & 196608) { 273 char_fix($uent->sig); 274 } 275 276 if ($FUD_OPT_1 & 262144) { 277 $uent->sig = smiley_to_post($uent->sig); 278 } 279 fud_wordwrap($uent->sig); 280 281 if ($uent->bio) { 282 $uent->bio = htmlspecialchars($uent->bio); 283 char_fix($uent->bio); 284 } 285 286 if (!$uent->icq && !($uent->users_opt & 4)) { 287 $uent->users_opt |= 4; 288 } 289 290 /* Restore avatar values to their previous values */ 291 $uent->avatar = $old_avatar; 292 $uent->avatar_loc = $old_avatar_loc; 293 $old_opt = $uent->users_opt & (4194304|16777216|8388608); 294 $uent->users_opt |= 4194304|16777216|8388608; 295 296 /* prevent non-confirmed users from playing with avatars, yes we are that cruel */ 297 if ($FUD_OPT_1 & 28 && _uid) { 298 if ($_POST['avatar_type'] == 'b') { /* built-in avatar */ 299 if (!$old_avatar && $old_avatar_loc) { 300 remove_old_avatar($old_avatar_loc); 301 $uent->avatar_loc = ''; 302 } else if (isset($avatar_arr['file'])) { 303 @unlink($TMP . basename($avatar_arr['file'])); 304 } 305 if ($_POST['reg_avatar'] == '0') { 306 $uent->avatar_loc = ''; 307 $uent->avatar = 0; 308 } else if ($uent->avatar != $_POST['reg_avatar'] && ($img = q_singleval('SELECT img FROM {SQL_TABLE_PREFIX}avatar WHERE id='.(int)$_POST['reg_avatar']))) { 309 /* verify that the avatar exists and it is different from the one in DB */ 310 $uent->avatar_loc = make_avatar_loc('images/avatars/' . $img, $WWW_ROOT_DISK, $WWW_ROOT); 311 $uent->avatar = $_POST['reg_avatar']; 312 } 313 if ($uent->avatar && $uent->avatar_loc) { 314 $uent->users_opt ^= 4194304|16777216; 315 } 316 } else { 317 if ($_POST['avatar_type'] == 'c' && isset($reg_avatar_loc_file)) { /* New URL avatar */ 318 $common_av_name = $reg_avatar_loc_file; 319 320 if (!empty($avatar_arr['file'])) { 321 $avatar_arr['del'] = 1; 322 } 323 } else if ($_POST['avatar_type'] == 'u' && empty($avatar_arr['del']) && empty($avatar_arr['leave'])) { /* uploaded file */ 324 $common_av_name = $avatar_arr['file']; 325 } 326 327 /* remove old avatar if need be */ 328 if (!empty($avatar_arr['del'])) { 329 if (empty($avatar_arr['leave'])) { 330 @unlink($TMP . basename($avatar_arr['file'])); 331 } else { 332 remove_old_avatar($old_avatar_loc); 333 } 334 } 335 336 /* add new avatar if needed */ 337 if (isset($common_av_name)) { 338 $common_av_name = basename($common_av_name); 339 $av_path = 'images/custom_avatars/' . substr($common_av_name, 0, strpos($common_av_name, '_')); 340 copy($TMP . basename($common_av_name), $WWW_ROOT_DISK . $av_path); 341 @unlink($TMP . basename($common_av_name)); 342 if (($uent->avatar_loc = make_avatar_loc($av_path, $WWW_ROOT_DISK, $WWW_ROOT))) { 343 if (!($FUD_OPT_1 & 32) || $uent->users_opt & 1048576) { 344 $uent->users_opt ^= 16777216|4194304; 345 } else { 346 $uent->users_opt ^= 8388608|4194304; 347 } 348 } 349 } else if (empty($avatar_arr['leave']) || !empty($avatar_arr['del'])) { 350 $uent->avatar_loc = ''; 351 } else if (!empty($avatar_arr['leave'])) { 352 $uent->users_opt ^= (8388608|16777216|4194304) ^ $old_opt; 353 } 354 $uent->avatar = 0; 355 } 356 if (empty($uent->avatar_loc)) { 357 $uent->users_opt ^= 8388608|16777216; 358 } 359 } else { 360 $uent->users_opt ^= (8388608|16777216|4194304) ^ $old_opt; 361 } 362 363 $uent->sync_user(); 364 365 if (!$mod_id) { 366 check_return($usr->returnto); 367 } else { 368 header('Location: adm/admuser.php?usr_id='.$uent->id.'&'._rsidl.'&act=nada'); 369 exit; 370 } 371 } 372 373 /* populate form variables based on user's profile */ 374 if (!isset($_POST['prev_loaded'])) { 375 foreach ($uent as $k => $v) { 376 ${'reg_'.$k} = htmlspecialchars($v); 377 } 378 reverse_fmt($reg_sig); 379 $reg_sig = apply_reverse_replace($reg_sig); 380 381 if ($FUD_OPT_1 & 262144) { 382 $reg_sig = post_to_smiley($reg_sig); 383 } 384 385 if ($FUD_OPT_1 & 131072) { 386 $reg_sig = html_to_tags($reg_sig); 387 } else if ($FUD_OPT_1 & 65536) { 388 reverse_nl2br($reg_sig); 389 } 390 391 if ($FUD_OPT_1 & 196608) { 392 char_fix($reg_sig); 393 } 394 char_fix($reg_bio); 395 396 if ($uent->bday) { 397 $b_year = substr($uent->bday, 0, 4); 398 $b_month = substr($uent->bday, 4, 2); 399 $b_day = substr($uent->bday, 6, 8); 400 } else { 401 $b_year = $b_month = $b_day = ''; 402 } 403 if (!$reg_avatar && $reg_avatar_loc) { /* custom avatar */ 404 reverse_fmt($reg_avatar_loc); 405 if (preg_match('!src="([^"]+)" width="!', $reg_avatar_loc, $tmp)) { 406 $avatar_arr['file'] = $tmp[1]; 407 $avatar_arr['del'] = 0; 408 $avatar_arr['leave'] = 1; 409 $avatar_type = 'u'; 410 } 411 } 412 reverse_fmt($reg_alias); 413 } else if (isset($_POST['prev_loaded'])) { /* import data from POST data */ 414 foreach ($_POST as $k => $v) { 415 if (!strncmp($k, 'reg_', 4)) { 416 ${$k} = htmlspecialchars($v); 417 } 418 } 419 char_fix($reg_bio); 420 char_fix($reg_sig); 421 422 $b_year = $_POST['b_year']; 423 $b_month = $_POST['b_month']; 424 $b_day = $_POST['b_day']; 425 if (isset($_POST['avatar_type'])) { 426 $avatar_type = $_POST['avatar_type']; 427 } 428 } 429 430 if (empty($reg_time_zone)) { 431 $reg_time_zone = $SERVER_TZ; 432 } 433 434 if (!$mod_id) { 435 ses_update_status($usr->sid, '{TEMPLATE: register_profile_update}', 0, 0); 436 } 437 438 $TITLE_EXTRA = ': {TEMPLATE: register_title}'; 439 440/*{POST_HTML_PHP}*/ 441 442 $reg_sig_err = draw_err('reg_sig'); 443 444 if ($FUD_OPT_2 & 2048) { 445 $affero_domain = parse_url($WWW_ROOT); 446 $register_affero = '{TEMPLATE: register_affero}'; 447 } else { 448 $register_affero = ''; 449 } 450 451 /* Initialize avatar options */ 452 $avatar = $avatar_type_sel = ''; 453 454 $reg_time_limit_err = ''; 455 456 $avatar_err = draw_err('avatar'); 457 458 $submit_button = '{TEMPLATE: update_button}'; 459 460 if ($FUD_OPT_1 & 28 && _uid) { 461 if ($FUD_OPT_1 == 28) { 462 /* if there are no built-in avatars, don't show them */ 463 if (q_singleval('SELECT count(*) FROM {SQL_TABLE_PREFIX}avatar')) { 464 $sel_opt = "{TEMPLATE: register_builtin}\n{TEMPLATE: register_specify_url}\n{TEMPLATE: register_uploaded}"; 465 $a_type='b'; 466 $sel_val = "b\nc\nu"; 467 } else { 468 $sel_opt = "{TEMPLATE: register_specify_url}\n{TEMPLATE: register_uploaded}"; 469 $a_type='u'; 470 $sel_val = "c\nu"; 471 } 472 } else { 473 $sel_opt = $sel_val = ''; 474 475 if (q_singleval('SELECT count(*) FROM {SQL_TABLE_PREFIX}avatar') && $FUD_OPT_1 & 16) { 476 $sel_opt .= "{TEMPLATE: register_builtin}\n"; 477 $a_type = 'b'; 478 $sel_val .= "b\n"; 479 } 480 if ($FUD_OPT_1 & 8) { 481 $sel_opt .= "{TEMPLATE: register_uploaded}\n"; 482 if (!isset($a_type)) { 483 $a_type = 'u'; 484 } 485 $sel_val .= "u\n"; 486 } 487 if ($FUD_OPT_1 & 4) { 488 $sel_opt .= "{TEMPLATE: register_specify_url}\n"; 489 if (!isset($a_type)) { 490 $a_type = 'c'; 491 } 492 $sel_val .= "c\n"; 493 } 494 $sel_opt = trim($sel_opt); 495 $sel_val = trim($sel_val); 496 } 497 if (isset($a_type)) { /* rare condition, no built-in avatars & no other avatars are allowed */ 498 if (!isset($avatar_type)) { 499 $avatar_type = $a_type; 500 } 501 $avatar_type_sel_options = tmpl_draw_select_opt($sel_val, $sel_opt, $avatar_type, '{TEMPLATE: sel_opt}', '{TEMPLATE: sel_opt_selected}'); 502 $avatar_type_sel = '{TEMPLATE: avatar_type_sel}'; 503 504 /* preview image */ 505 if (isset($_POST['prev_loaded'])) { 506 if ((!empty($_POST['reg_avatar']) && $_POST['reg_avatar'] == $uent->avatar) || (!empty($avatar_arr['file']) && empty($avatar_arr['del']) && $avatar_arr['leave'])) { 507 $custom_avatar_preview = $uent->avatar_loc; 508 } else if (!empty($_POST['reg_avatar']) && ($im = q_singleval('SELECT img FROM {SQL_TABLE_PREFIX}avatar WHERE id='.(int)$_POST['reg_avatar']))) { 509 $custom_avatar_preview = make_avatar_loc('images/avatars/' . $im, $WWW_ROOT_DISK, $WWW_ROOT); 510 } else { 511 if (isset($reg_avatar_loc_file)) { 512 $common_name = $reg_avatar_loc_file; 513 } else if (!empty($avatar_arr['file']) && empty($avatar_arr['del'])) { 514 $common_name = $avatar_arr['file']; 515 } 516 if (isset($common_name)) { 517 $custom_avatar_preview = make_avatar_loc(basename($common_name), $TMP, '{ROOT}?t=tmp_view&img='); 518 } 519 } 520 } else if ($uent->avatar_loc) { 521 $custom_avatar_preview = $uent->avatar_loc; 522 } 523 524 if (!isset($custom_avatar_preview)) { 525 $custom_avatar_preview = '<img src="blank.gif" />'; 526 } 527 528 /* determine the avatar specification field to show */ 529 if ($avatar_type == 'b') { 530 if (empty($reg_avatar)) { 531 $reg_avatar = '0'; 532 $reg_avatar_img = 'blank.gif'; 533 } else if (!empty($reg_avatar_loc)) { 534 reverse_fmt($reg_avatar_loc); 535 preg_match('!images/avatars/([^"]+)"!', $reg_avatar_loc, $tmp); 536 $reg_avatar_img = 'images/avatars/' . $tmp[1]; 537 } else { 538 $reg_avatar_img = 'images/avatars/' . q_singleval('SELECT img FROM {SQL_TABLE_PREFIX}avatar WHERE id='.(int)$reg_avatar); 539 } 540 $del_built_in_avatar = $reg_avatar ? '{TEMPLATE: del_built_in_avatar}' : ''; 541 $avatar = '{TEMPLATE: built_in_avatar}'; 542 } else if ($avatar_type == 'c') { 543 if (!isset($reg_avatar_loc)) { 544 $reg_avatar_loc = ''; 545 } 546 $avatar = '{TEMPLATE: custom_url_avatar}'; 547 } else if ($avatar_type == 'u') { 548 $avatar_tmp = $avatar_arr ? base64_encode($avatar_arr['file'] . "\n" . $avatar_arr['del'] . "\n" . $avatar_arr['leave']) : ''; 549 $buttons = (!empty($avatar_arr['file']) && empty($avatar_arr['del'])) ? '{TEMPLATE: delete_uploaded_avatar}' : '{TEMPLATE: upload_avatar}'; 550 $avatar = '{TEMPLATE: custom_upload_avatar}'; 551 } 552 } 553 } 554 555 $post_options = tmpl_post_options('sig'); 556 557 $theme_select = create_theme_select('reg_theme', $reg_theme); 558 559 $day_select = tmpl_draw_select_opt("\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31", "\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31", $b_day, '{TEMPLATE: sel_opt}', '{TEMPLATE: sel_opt_selected}'); 560 $month_select = tmpl_draw_select_opt("\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12", "\n{TEMPLATE: month_1}\n{TEMPLATE: month_2}\n{TEMPLATE: month_3}\n{TEMPLATE: month_4}\n{TEMPLATE: month_5}\n{TEMPLATE: month_6}\n{TEMPLATE: month_7}\n{TEMPLATE: month_8}\n{TEMPLATE: month_9}\n{TEMPLATE: month_10}\n{TEMPLATE: month_11}\n{TEMPLATE: month_12}", $b_month, '{TEMPLATE: sel_opt}', '{TEMPLATE: sel_opt_selected}'); 561 $gender_select = tmpl_draw_select_opt("512\n1024\n0","{TEMPLATE: unspecified}\n{TEMPLATE: male}\n{TEMPLATE: female}", ($uent->users_opt & 512 ? 512 : ($uent->users_opt & 1024)), '{TEMPLATE: sel_opt}', '{TEMPLATE: sel_opt_selected}'); 562 $mppg_select = tmpl_draw_select_opt("0\n5\n10\n20\n30\n40", "{TEMPLATE: use_forum_default}\n5\n10\n20\n30\n40", $reg_posts_ppg, '{TEMPLATE: sel_opt}', '{TEMPLATE: sel_opt_selected}'); 563 $view_select = tmpl_draw_select_opt("384\n128".($FUD_OPT_2 & 512 ?"\n256\n0":''), "{TEMPLATE: register_flat_view}\n{TEMPLATE: register_msg_tree_view}".($FUD_OPT_2 & 512 ? "\n{TEMPLATE: register_tree_msg_view}\n{TEMPLATE: register_tree_view}":''), ($uent->users_opt & (128|256)), '{TEMPLATE: sel_opt}', '{TEMPLATE: sel_opt_selected}'); 564 $timezone_select = tmpl_draw_select_opt($tz_values, $tz_names, $reg_time_zone, '{TEMPLATE: sel_opt}', '{TEMPLATE: sel_opt_selected}'); 565 $notification_select = tmpl_draw_select_opt("4\n0", "{TEMPLATE: register_email}\n{TEMPLATE: register_icq}", ($uent->users_opt & 4), '{TEMPLATE: sel_opt}', '{TEMPLATE: sel_opt_selected}'); 566 567 $ignore_admin_radio = tmpl_draw_radio_opt('reg_ignore_admin', "8\n0", "{TEMPLATE: yes}\n{TEMPLATE: no}", ($uent->users_opt & 8), '{TEMPLATE: radio_button}', '{TEMPLATE: radio_button_selected}', '{TEMPLATE: radio_button_separator}'); 568 $invisible_mode_radio = tmpl_draw_radio_opt('reg_invisible_mode', "32768\n0", "{TEMPLATE: yes}\n{TEMPLATE: no}", ($uent->users_opt & 32768), '{TEMPLATE: radio_button}', '{TEMPLATE: radio_button_selected}', '{TEMPLATE: radio_button_separator}'); 569 $show_email_radio = tmpl_draw_radio_opt('reg_display_email', "1\n0", "{TEMPLATE: yes}\n{TEMPLATE: no}", ($uent->users_opt & 1), '{TEMPLATE: radio_button}', '{TEMPLATE: radio_button_selected}', '{TEMPLATE: radio_button_separator}'); 570 $notify_default_radio = tmpl_draw_radio_opt('reg_notify', "2\n0", "{TEMPLATE: yes}\n{TEMPLATE: no}", ($uent->users_opt & 2), '{TEMPLATE: radio_button}', '{TEMPLATE: radio_button_selected}', '{TEMPLATE: radio_button_separator}'); 571 $pm_notify_default_radio= tmpl_draw_radio_opt('reg_pm_notify', "64\n0", "{TEMPLATE: yes}\n{TEMPLATE: no}", ($uent->users_opt & 64), '{TEMPLATE: radio_button}', '{TEMPLATE: radio_button_selected}', '{TEMPLATE: radio_button_separator}'); 572 $accept_user_email = tmpl_draw_radio_opt('reg_email_messages', "16\n0", "{TEMPLATE: yes}\n{TEMPLATE: no}", ($uent->users_opt & 16), '{TEMPLATE: radio_button}', '{TEMPLATE: radio_button_selected}', '{TEMPLATE: radio_button_separator}'); 573 $accept_pm = tmpl_draw_radio_opt('reg_pm_messages', "32\n0", "{TEMPLATE: yes}\n{TEMPLATE: no}", ($uent->users_opt & 32), '{TEMPLATE: radio_button}', '{TEMPLATE: radio_button_selected}', '{TEMPLATE: radio_button_separator}'); 574 $show_sig_radio = tmpl_draw_radio_opt('reg_show_sigs', "4096\n0", "{TEMPLATE: yes}\n{TEMPLATE: no}", ($uent->users_opt & 4096), '{TEMPLATE: radio_button}', '{TEMPLATE: radio_button_selected}', '{TEMPLATE: radio_button_separator}'); 575 $show_avatar_radio = tmpl_draw_radio_opt('reg_show_avatars', "8192\n0", "{TEMPLATE: yes}\n{TEMPLATE: no}", ($uent->users_opt & 8192), '{TEMPLATE: radio_button}', '{TEMPLATE: radio_button_selected}', '{TEMPLATE: radio_button_separator}'); 576 $show_im_radio = tmpl_draw_radio_opt('reg_show_im', "16384\n0", "{TEMPLATE: yes}\n{TEMPLATE: no}", ($uent->users_opt & 16384), '{TEMPLATE: radio_button}', '{TEMPLATE: radio_button_selected}', '{TEMPLATE: radio_button_separator}'); 577 $append_sig_radio = tmpl_draw_radio_opt('reg_append_sig', "2048\n0", "{TEMPLATE: yes}\n{TEMPLATE: no}", ($uent->users_opt & 2048), '{TEMPLATE: radio_button}', '{TEMPLATE: radio_button_selected}', '{TEMPLATE: radio_button_separator}'); 578 579 $reg_user_image_field = $FUD_OPT_2 & 65536 ? '{TEMPLATE: reg_user_image}' : ''; 580 $sig_len_limit = $FORUM_SIG_ML ? '{TEMPLATE: register_sig_limit}' : ''; 581 582/*{POST_PAGE_PHP_CODE}*/ 583?> 584{TEMPLATE: REGISTER_PAGE} 585