From 307999321d3cd5bd0d6a21db02bd6be866d5baa6 Mon Sep 17 00:00:00 2001 From: Bart van Bragt Date: Fri, 21 Oct 2005 20:29:09 +0000 Subject: [PATCH] admin_users.php should be at least sort of usable again. git-svn-id: file:///svn/phpbb/trunk@5273 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/adm/admin_users.php | 637 ++++++++++++++++++++------------------ 1 file changed, 331 insertions(+), 306 deletions(-) diff --git a/phpBB/adm/admin_users.php b/phpBB/adm/admin_users.php index 0b21afa380..7a752cce66 100644 --- a/phpBB/adm/admin_users.php +++ b/phpBB/adm/admin_users.php @@ -1,10 +1,10 @@ sql_escape($username) . "'"; - $sql = ($action == 'overview') ? 'SELECT u.*, s.session_time, s.session_page, s.session_ip FROM (' . USERS_TABLE . ' u LEFT JOIN ' . SESSIONS_TABLE . " s ON s.session_user_id = u.user_id) WHERE u.$sql_where ORDER BY s.session_time DESC" : 'SELECT * FROM ' . USERS_TABLE . " WHERE $sql_where"; + if ($action == 'overview') + { + $sql = ' + SELECT + u.*, + s.session_time, s.session_page, s.session_ip + FROM (' . + USERS_TABLE . ' u + LEFT JOIN ' . SESSIONS_TABLE . " s ON s.session_user_id = u.user_id) + WHERE u.$sql_where + ORDER BY s.session_time DESC"; + } + else + { + $sql = 'SELECT * FROM ' . USERS_TABLE . " WHERE $sql_where"; + } $result = $db->sql_query($sql); - if (!extract($db->sql_fetchrow($result))) + if (!$userrow = $db->sql_fetchrow($result)) { trigger_error($user->lang['NO_USER']); } $db->sql_freeresult($result); - if ($session_time > $user_lastvisit) + if ($userrow['session_time'] > $userrow['user_lastvisit']) { - $user_lastvisit = $session_time; - $user_lastpage = $session_page; + $userrow['user_lastvisit'] = $userrow['session_time']; + $userrow['user_lastpage'] = $userrow['session_page']; } - + $user_password = ''; } @@ -148,6 +163,9 @@ if ($username || $user_id) $form_options .= ''; } + // Make sure $user_id is available. + $user_id = $userrow['user_id']; + $pagination = ''; ?> @@ -212,7 +230,8 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; if ($submit) { - if ($delete && $user_type != USER_FOUNDER) + // You can't delete the founder + if ($delete && $userrow['user_type'] != USER_FOUNDER) { if (!$auth->acl_get('a_userdel')) { @@ -223,17 +242,17 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; { adm_page_confirm($user->lang['CONFIRM'], $user->lang['CONFIRM_OPERATION']); } - else if (!$cancel) + else if (!$cancel) { user_delete($deletetype, $user_id); - add_log('admin', 'LOG_USER_DELETED', $username); + add_log('admin', 'LOG_USER_DELETED', $userrow['username']); trigger_error($user->lang['USER_DELETED']); } } // Handle quicktool actions - if ($quicktools && $user_type != USER_FOUNDER) + if ($quicktools && $userrow['user_type'] != USER_FOUNDER) { switch ($quicktools) { @@ -245,22 +264,22 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; switch ($quicktools) { case 'banuser': - $ban[] = $username; + $ban[] = $userrow['username']; $reason = 'USER_ADMIN_BAN_NAME_REASON'; $log = 'LOG_BAN_USERNAME_USER'; break; case 'banemail': - $ban[] = $user_email; + $ban[] = $userrow['user_email']; $reason = 'USER_ADMIN_BAN_EMAIL_REASON'; $log = 'LOG_BAN_EMAIL_USER'; break; case 'banip': - $ban[] = $user_ip; + $ban[] = $userrow['user_ip']; - $sql = 'SELECT DISTINCT poster_ip - FROM ' . POSTS_TABLE . " + $sql = 'SELECT DISTINCT poster_ip + FROM ' . POSTS_TABLE . " WHERE poster_id = $user_id"; $result = $db->sql_query($sql); @@ -294,7 +313,7 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; $key_len = ($key_len > 6) ? $key_len : 6; $user_actkey = substr($user_actkey, 0, $key_len); - user_active_flip($user_id, $user_type, $user_actkey, $username); + user_active_flip($user_id, $userrow['user_type'], $user_actkey, $userrow['username']); $messenger = new messenger(); @@ -302,7 +321,7 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; $messenger->subject(); $messenger->replyto($config['board_contact']); - $messenger->to($user_email, $username); + $messenger->to($userrow['user_email'], $userrow['username']); $messenger->headers('X-AntiAbuse: Board servername - ' . $config['server_name']); $messenger->headers('X-AntiAbuse: User_id - ' . $user->data['user_id']); @@ -322,7 +341,7 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; $messenger->send(NOTIFY_EMAIL); $messenger->save_queue(); - add_log('admin', 'LOG_USER_REACTIVATE', $username); + add_log('admin', 'LOG_USER_REACTIVATE', $userrow['username']); add_log('user', $user_id, 'LOG_USER_REACTIVATE_USER'); trigger_error($user->lang['USER_ADMIN_REACTIVATE']); @@ -332,12 +351,12 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; case 'active': - user_active_flip($user_id, $user_type, false, $username); + user_active_flip($user_id, $userrow['user_type'], false, $userrow['username']); $message = ($user_type == USER_NORMAL) ? 'USER_ADMIN_INACTIVE' : 'USER_ADMIN_ACTIVE'; $log = ($user_type == USER_NORMAL) ? 'LOG_USER_INACTIVE' : 'LOG_USER_ACTIVE'; - add_log('admin', $log, $username); + add_log('admin', $log, $userrow['username']); add_log('user', $user_id, $log . '_USER'); trigger_error($user->lang[$message]); @@ -359,10 +378,10 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; lang['USER_ADMIN_MOVE_POSTS']; ?> - lang['MOVE_POSTS_EXPLAIN']; ?>

  @@ -380,8 +399,8 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; $topic_id_ary = array(); $forum_id_ary = array($new_forum_id); - $sql = 'SELECT topic_id, COUNT(post_id) AS total_posts - FROM ' . POSTS_TABLE . " + $sql = 'SELECT topic_id, COUNT(post_id) AS total_posts + FROM ' . POSTS_TABLE . " WHERE poster_id = $user_id AND forum_id <> $new_forum_id GROUP BY topic_id"; @@ -393,8 +412,8 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; } $db->sql_freeresult($result); - $sql = 'SELECT topic_id, forum_id, topic_title, topic_replies, topic_replies_real - FROM ' . TOPICS_TABLE . ' + $sql = 'SELECT topic_id, forum_id, topic_title, topic_replies, topic_replies_real + FROM ' . TOPICS_TABLE . ' WHERE topic_id IN (' . implode(', ', array_keys($topic_id_ary)) . ')'; $result = $db->sql_query($sql); @@ -433,9 +452,9 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; 'topic_time' => time(), 'forum_id' => $new_forum_id, 'icon_id' => 0, - 'topic_approved' => 1, + 'topic_approved' => 1, 'topic_title' => $post_ary['title'], - 'topic_first_poster_name' => $username, + 'topic_first_poster_name' => $userrow['username'], 'topic_type' => POST_NORMAL, 'topic_time_limit' => 0, 'topic_attachment' => $post_ary['attach'],) @@ -446,7 +465,7 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; // Move posts $sql = 'UPDATE ' . POSTS_TABLE . " - SET forum_id = $new_forum_id, topic_id = $new_topic_id + SET forum_id = $new_forum_id, topic_id = $new_topic_id WHERE topic_id = $topic_id AND poster_id = $user_id"; $db->sql_query($sql); @@ -476,53 +495,61 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; } $sql = 'SELECT forum_name - FROM ' . TOPICS_TABLE . " + FROM ' . TOPICS_TABLE . " WHERE topic_id = $new_forum_id"; $result = $db->sql_query($sql); - extract($db->sql_fetchrow($result)); + $forum_info = $db->sql_fetchrow($result); $db->sql_freeresult($result); - add_log('admin', 'LOG_USER_MOVE_POSTS', $forum_name, $username); - add_log('user', $user_id, 'LOG_USER_MOVE_POSTS_USER', $forum_name); + add_log('admin', 'LOG_USER_MOVE_POSTS', $forum_info['forum_name'], $userrow['username']); + add_log('user', $user_id, 'LOG_USER_MOVE_POSTS_USER', $forum_info['forum_name']); trigger_error($user->lang['USER_ADMIN_MOVE']); } // Handle registration info updates $var_ary = array( - 'username' => (string) $username, - 'user_founder' => (int) $user_founder, - 'user_type' => (int) $user_type, - 'user_email' => (string) $user_email, + 'username' => (string) $userrow['username'], + 'user_type' => (int) $userrow['user_founder'], + 'user_email' => (string) $userrow['user_email'], 'email_confirm' => (string) '', - 'user_password' => (string) '', - 'password_confirm' => (string) '', - 'user_warnings' => (int) $user_warnings, + 'user_password' => (string) '', + 'password_confirm' => (string) '', + 'user_warnings' => (int) $userrow['user_warnings'], ); + // Get the data from the form. Use data from the database if no info is provided foreach ($var_ary as $var => $default) { $data[$var] = request_var($var, $default); } + // Validation data $var_ary = array( - 'password_confirm' => array('string', true, $config['min_pass_chars'], $config['max_pass_chars']), - 'user_password' => array('string', true, $config['min_pass_chars'], $config['max_pass_chars']), - 'user_email' => array( - array('string', false, 6, 60), - array('email', $email)), - 'email_confirm' => array('string', true, 6, 60), - 'user_warnings' => array('num', 0, $config['max_warnings']), + 'password_confirm' => array('string', true, $config['min_pass_chars'], $config['max_pass_chars']), + 'user_password' => array('string', true, $config['min_pass_chars'], $config['max_pass_chars']), + 'user_warnings' => array('num', 0, $config['max_warnings']), ); // Check username if altered - if ($username != $data['username']) + if ($data['username'] != $userrow['username']) { $var_ary += array( 'username' => array( - array('string', false, $config['min_name_chars'], $config['max_name_chars']), - array('username', $username)), + array('string', false, $config['min_name_chars'], $config['max_name_chars']), + array('username', $userrow['username'])), + ); + } + + // Check email if altered + if ($data['user_email'] != $userrow['user_email']) + { + $var_ary += array( + 'user_email' => array( + array('string', false, 6, 60), + array('email', $userrow['user_email'])), + 'email_confirm' => array('string', true, 6, 60) ); } @@ -533,40 +560,38 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; $error[] = 'NEW_PASSWORD_ERROR'; } - if ($user_email != $data['user_email'] && $data['email_confirm'] != $data['user_email']) + if ($data['user_email'] != $userrow['user_email'] && $data['email_confirm'] != $data['user_email']) { $error[] = 'NEW_EMAIL_ERROR'; } // Which updates do we need to do? $update_warning = ($user_warnings != $data['user_warnings']) ? true : false; - $update_username = ($username != $data['username']) ? $username : false; + $update_username = ($username != $data['username']) ? $data['username'] : false; $update_password = ($user_password != $data['user_password']) ? true : false; - extract($data); - unset($data); - if (!sizeof($error)) { $sql_ary = array( - 'username' => $username, - 'user_founder' => $user_founder, - 'user_email' => $user_email, - 'user_email_hash' => crc32(strtolower($user_email)) . strlen($user_email), - 'user_warnings' => $user_warnings, + 'username' => $data['username'], + // TODO: check if this user is allowed to change user_type + 'user_type' => $data['user_founder'], + 'user_email' => $data['user_email'], + 'user_email_hash' => crc32(strtolower($data['user_email'])) . strlen($data['user_email']), + 'user_warnings' => $data['user_warnings'], ); if ($update_password) { $sql_ary += array( - 'user_password' => md5($user_password), + 'user_password' => md5($data['user_password']), 'user_passchg' => time(), ); } - $sql = 'UPDATE ' . USERS_TABLE . ' - SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' - WHERE user_id = ' . $user->data['user_id']; + $sql = 'UPDATE ' . USERS_TABLE . ' + SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' + WHERE user_id = ' . $user_id; $db->sql_query($sql); // TODO @@ -576,7 +601,7 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; if ($update_username) { - user_update_name($update_username, $username); + user_update_name($update_username, $userrow['username']); } trigger_error($user->lang['USER_OVERVIEW_UPDATED']); @@ -585,12 +610,11 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; // Replace "error" strings with their real, localised form $error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error); } - $colspan = 2; $user_char_ary = array('.*' => 'USERNAME_CHARS_ANY', '[\w]+' => 'USERNAME_ALPHA_ONLY', '[\w_\+\. \-\[\]]+' => 'USERNAME_ALPHA_SPACERS'); $quick_tool_ary = array('banuser' => 'BAN_USER', 'banemail' => 'BAN_EMAIL', 'banip' => 'BAN_IP', 'active' => (($user_type == USER_INACTIVE) ? 'ACTIVATE' : 'DEACTIVATE'), 'delsig' => 'DEL_SIG', 'delavatar' => 'DEL_AVATAR', 'moveposts' => 'MOVE_POSTS', 'delposts' => 'DEL_POSTS', 'delattach' => 'DEL_ATTACH'); - if ($config['email_enable']) + if ($config['email_enable']) { $quick_tool_ary['reactivate'] = 'FORCE'; } @@ -601,39 +625,47 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; $options .= ''; } - $user_founder_yes = ($user_type == USER_FOUNDER) ? ' checked="checked"' : ''; - $user_founder_no = ($user_type != USER_FOUNDER) ? ' checked="checked"' : (($user->data['user_type'] != USER_FOUNDER) ? ' disabled="disabled"' : ''); + $user_founder_yes = ($userrow['user_type'] == USER_FOUNDER) ? ' checked="checked"' : ''; + $user_founder_no = ($userrow['user_type'] != USER_FOUNDER) ? ' checked="checked"' : (($user->data['user_type'] != USER_FOUNDER) ? ' disabled="disabled"' : ''); -?> + foreach($error as $error_msg) + { +?> + + + + lang['USER_ADMIN_OVERVIEW']; ?> lang['USERNAME']; ?>:
lang[$user_char_ary[str_replace('\\\\', '\\', $config['allow_name_chars'])] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']); ?> - + lang['REGISTERED']; ?>: - format_date($user_regdate); ?> + format_date($userrow['user_regdate']); ?> lang['REGISTERED_IP']; ?>: - ' . (($ip == 'hostname') ? gethostbyaddr($user_ip) : $user_ip) . " [ " . $user->lang['WHOIS'] . ' ]'; ?> + ' . (($ip == 'hostname') ? gethostbyaddr($user_ip) : $user_ip) . " [ " . $user->lang['WHOIS'] . ' ]'; ?> lang['LAST_ACTIVE']; ?>: - format_date($user_lastvisit); ?> + format_date($userrow['user_lastvisit']); ?> lang['FOUNDER']; ?>:
lang['FOUNDER_EXPLAIN']; ?> @@ -641,7 +673,7 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; lang['EMAIL']; ?>: - + lang['CONFIRM_EMAIL']; ?>:
lang['CONFIRM_EMAIL_EXPLAIN']; ?> @@ -657,7 +689,7 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; @@ -666,7 +698,7 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; lang['WARNINGS']; ?>:
lang['WARNINGS_EXPLAIN']; ?> - + lang['QUICK_TOOLS']; ?>: @@ -707,7 +739,7 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; } $sql = 'DELETE FROM ' . LOG_TABLE . ' - WHERE log_type = ' . LOG_USERS . " + WHERE log_type = ' . LOG_USERS . " $where_sql"; $db->sql_query($sql); @@ -780,14 +812,14 @@ e_help = "lang['BBCODE_E_HELP']; ?>"; ?> acl_get('a_clearlogs')) { ?>    @@ -795,8 +827,8 @@ e_help = "lang['BBCODE_E_HELP']; ?>";
lang['MARK_ALL']; ?> :: lang['UNMARK_ALL']; ?> 

@@ -841,12 +873,12 @@ function marklist(match, status) if ($submit) { $var_ary = array( - 'icq' => (string) '', - 'aim' => (string) '', - 'msn' => (string) '', - 'yim' => (string) '', - 'jabber' => (string) '', - 'website' => (string) '', + 'icq' => (string) '', + 'aim' => (string) '', + 'msn' => (string) '', + 'yim' => (string) '', + 'jabber' => (string) '', + 'website' => (string) '', 'location' => (string) '', 'occupation' => (string) '', 'interests' => (string) '', @@ -862,28 +894,26 @@ function marklist(match, status) $var_ary = array( 'icq' => array( - array('string', true, 3, 15), - array('match', true, '#^[0-9]+$#i')), - 'aim' => array('string', true, 5, 255), - 'msn' => array('string', true, 5, 255), + array('string', true, 3, 15), + array('match', true, '#^[0-9]+$#i')), + 'aim' => array('string', true, 5, 255), + 'msn' => array('string', true, 5, 255), 'jabber' => array( - array('string', true, 5, 255), + array('string', true, 5, 255), array('match', true, '#^[a-z0-9\.\-_\+]+?@(.*?\.)*?[a-z0-9\-_]+?\.[a-z]{2,4}(/.*)?$#i')), - 'yim' => array('string', true, 5, 255), + 'yim' => array('string', true, 5, 255), 'website' => array( - array('string', true, 12, 255), - array('match', true, '#^http[s]?://(.*?\.)*?[a-z0-9\-]+\.[a-z]{2,4}#i')), - 'location' => array('string', true, 2, 255), - 'occupation' => array('string', true, 2, 500), - 'interests' => array('string', true, 2, 500), + array('string', true, 12, 255), + array('match', true, '#^http[s]?://(.*?\.)*?[a-z0-9\-]+\.[a-z]{2,4}#i')), + 'location' => array('string', true, 2, 255), + 'occupation' => array('string', true, 2, 500), + 'interests' => array('string', true, 2, 500), 'bday_day' => array('num', true, 1, 31), 'bday_month' => array('num', true, 1, 12), 'bday_year' => array('num', true, 1901, gmdate('Y', time())), ); $error = validate_data($data, $var_ary); - extract($data); - unset($data); // validate custom profile fields // $cp->submit_cp_field('profile', $cp_data, $cp_error); @@ -891,19 +921,19 @@ function marklist(match, status) if (!sizeof($error) && !sizeof($cp_error)) { $sql_ary = array( - 'user_icq' => $icq, - 'user_aim' => $aim, - 'user_msnm' => $msn, - 'user_yim' => $yim, - 'user_jabber' => $jabber, - 'user_website' => $website, - 'user_from' => $location, - 'user_occ' => $occupation, - 'user_interests'=> $interests, - 'user_birthday' => sprintf('%2d-%2d-%4d', $bday_day, $bday_month, $bday_year), + 'user_icq' => $data['icq'], + 'user_aim' => $data['aim'], + 'user_msnm' => $data['msn'], + 'user_yim' => $data['yim'], + 'user_jabber' => $data['jabber'], + 'user_website' => $data['website'], + 'user_from' => $data['location'], + 'user_occ' => $data['occupation'], + 'user_interests'=> $data['interests'], + 'user_birthday' => sprintf('%2d-%2d-%4d', $data['bday_day'], $data['bday_month'], $data['bday_year']), ); - $sql = 'UPDATE ' . USERS_TABLE . ' + $sql = 'UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " WHERE user_id = $user_id"; $db->sql_query($sql); @@ -940,31 +970,31 @@ function marklist(match, status) $cp_data = $cp_error = array(); - if (!isset($bday_day)) + if (!isset($userrow['bday_day'])) { - list($bday_day, $bday_month, $bday_year) = explode('-', $user_birthday); + list($userrow['bday_day'], $userrow['bday_month'], $userrow['bday_year']) = explode('-', $userrow['user_birthday']); } $s_birthday_day_options = ''; for ($i = 1; $i < 32; $i++) { - $selected = ($i == $bday_day) ? ' selected="selected"' : ''; + $selected = ($i == $userrow['bday_day']) ? ' selected="selected"' : ''; $s_birthday_day_options .= ""; } - $s_birthday_month_options = ''; + $s_birthday_month_options = ''; for ($i = 1; $i < 13; $i++) { - $selected = ($i == $bday_month) ? ' selected="selected"' : ''; + $selected = ($i == $userrow['bday_month']) ? ' selected="selected"' : ''; $s_birthday_month_options .= ""; } $s_birthday_year_options = ''; $now = getdate(); - $s_birthday_year_options = ''; + $s_birthday_year_options = ''; for ($i = $now['year'] - 100; $i < $now['year']; $i++) { - $selected = ($i == $bday_year) ? ' selected="selected"' : ''; + $selected = ($i == $userrow['bday_year']) ? ' selected="selected"' : ''; $s_birthday_year_options .= ""; } unset($now); @@ -978,43 +1008,43 @@ function marklist(match, status) lang['USER_ADMIN_SIG']; ?> - + lang['UCP_ICQ']; ?>: - + - + lang['UCP_AIM']; ?>: - + - + lang['UCP_MSNM']; ?>: - + - + lang['UCP_YIM']; ?>: - + - + lang['UCP_JABBER']; ?>: - + - + lang['WEBSITE']; ?>: - + - + lang['LOCATION']; ?>: - + - + lang['OCCUPATION']; ?>: - + - + lang['INTERESTS']; ?>: - + - + lang['BIRTHDAY']; ?>:
lang['BIRTHDAY_EXPLAIN']; ?> lang['DAY']; ?>: lang['MONTH']; ?>: lang['YEAR']; ?>: @@ -1031,34 +1061,34 @@ function marklist(match, status) if ($submit) { $var_ary = array( - 'user_dateformat' => (string) $config['default_dateformat'], - 'user_lang' => (string) $config['default_lang'], + 'user_dateformat' => (string) $config['default_dateformat'], + 'user_lang' => (string) $config['default_lang'], 'user_tz' => (float) $config['board_timezone'], - 'user_style' => (int) $config['default_style'], - 'user_dst' => (bool) $config['board_dst'], - 'user_allow_viewemail' => false, - 'user_allow_massemail' => true, - 'user_allow_viewonline' => true, - 'user_notify_type' => 0, - 'user_notify_pm' => true, - 'user_allow_pm' => true, - 'user_notify' => false, + 'user_style' => (int) $config['default_style'], + 'user_dst' => (bool) $config['board_dst'], + 'user_allow_viewemail' => false, + 'user_allow_massemail' => true, + 'user_allow_viewonline' => true, + 'user_notify_type' => 0, + 'user_notify_pm' => true, + 'user_allow_pm' => true, + 'user_notify' => false, - 'sk' => (string) 't', - 'sd' => (string) 'd', + 'sk' => (string) 't', + 'sd' => (string) 'd', 'st' => 0, - 'popuppm' => false, - 'viewimg' => true, - 'viewflash' => false, - 'viewsmilies' => true, - 'viewsigs' => true, - 'viewavatars' => true, - 'viewcensors' => false, - 'bbcode' => true, - 'html' => false, + 'popuppm' => false, + 'viewimg' => true, + 'viewflash' => false, + 'viewsmilies' => true, + 'viewsigs' => true, + 'viewavatars' => true, + 'viewcensors' => false, + 'bbcode' => true, + 'html' => false, 'smilies' => true, - 'attachsig' => true, + 'attachsig' => true, ); foreach ($var_ary as $var => $default) @@ -1067,17 +1097,15 @@ function marklist(match, status) } $var_ary = array( - 'user_dateformat' => array('string', false, 3, 15), + 'user_dateformat' => array('string', false, 3, 15), 'user_lang' => array('match', false, '#^[a-z_]{2,}$#i'), 'user_tz' => array('num', false, -13, 13), - 'sk' => array('string', false, 1, 1), - 'sd' => array('string', false, 1, 1), + 'sk' => array('string', false, 1, 1), + 'sd' => array('string', false, 1, 1), ); $error = validate_data($data, $var_ary); - extract($data); - unset($data); // Set the popuppm option $option_ary = array('popuppm', 'viewimg', 'viewflash', 'viewsmilies', 'viewsigs', 'viewavatars', 'viewcensors', 'bbcode', 'html', 'smilies', 'attachsig'); @@ -1090,25 +1118,25 @@ function marklist(match, status) if (!sizeof($error)) { $sql_ary = array( - 'user_allow_pm' => $user_allow_pm, - 'user_allow_viewemail' => $user_allow_viewemail, - 'user_allow_massemail' => $user_allow_massemail, - 'user_allow_viewonline' => $user_allow_viewonline, - 'user_notify_type' => $user_notify_type, - 'user_notify_pm' => $user_notify_pm, - 'user_options' => $user_options, - 'user_notify' => $user_notify, - 'user_dst' => $user_dst, - 'user_dateformat' => $user_dateformat, - 'user_lang' => $user_lang, - 'user_timezone' => $user_tz, - 'user_style' => $user_style, - 'user_sortby_type' => $sk, - 'user_sortby_dir' => $sd, - 'user_show_days' => $st, + 'user_allow_pm' => $data['user_allow_pm'], + 'user_allow_viewemail' => $data['user_allow_viewemail'], + 'user_allow_massemail' => $data['user_allow_massemail'], + 'user_allow_viewonline' => $data['user_allow_viewonline'], + 'user_notify_type' => $data['user_notify_type'], + 'user_notify_pm' => $data['user_notify_pm'], + 'user_options' => $data['user_options'], + 'user_notify' => $data['user_notify'], + 'user_dst' => $data['user_dst'], + 'user_dateformat' => $data['user_dateformat'], + 'user_lang' => $data['user_lang'], + 'user_timezone' => $data['user_tz'], + 'user_style' => $data['user_style'], + 'user_sortby_type' => $data['sk'], + 'user_sortby_dir' => $data['sd'], + 'user_show_days' => $data['st'], ); - $sql = 'UPDATE ' . USERS_TABLE . ' + $sql = 'UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " WHERE user_id = $user_id"; $db->sql_query($sql); @@ -1127,8 +1155,8 @@ function marklist(match, status) foreach ($option_ary as $option) { - ${$option . '_yes'} = ($$option) ? ' checked="checked"' : ''; - ${$option . '_no'} = (!$$option) ? ' checked="checked"' : ''; + ${$option . '_yes'} = ($userrow[$option]) ? ' checked="checked"' : ''; + ${$option . '_no'} = (!$userrow[$option]) ? ' checked="checked"' : ''; } unset($option_ary); @@ -1136,13 +1164,13 @@ function marklist(match, status) foreach ($option_ary as $option) { - ${$option . '_yes'} = ($user->optionget($option, $user_options)) ? ' checked="checked"' : ''; - ${$option . '_no'} = (!$user->optionget($option, $user_options)) ? ' checked="checked"' : ''; + ${$option . '_yes'} = ($user->optionget($userrow[$option], $user_options)) ? ' checked="checked"' : ''; + ${$option . '_no'} = (!$user->optionget($userrow[$option], $user_options)) ? ' checked="checked"' : ''; } - $notify_email = ($user_notify_type == NOTIFY_EMAIL) ? ' checked="checked"' : ''; - $notify_im = ($user_notify_type == NOTIFY_IM) ? ' checked="checked"' : ''; - $notify_both = ($user_notify_type == NOTIFY_BOTH) ? ' checked="checked"' : ''; + $notify_email = ($userrow['user_notify_type'] == NOTIFY_EMAIL) ? ' checked="checked"' : ''; + $notify_im = ($userrow['user_notify_type'] == NOTIFY_IM) ? ' checked="checked"' : ''; + $notify_both = ($userrow['user_notify_type'] == NOTIFY_BOTH) ? ' checked="checked"' : ''; // Topic ordering display $limit_days = array(0 => $user->lang['ALL_TOPICS'], 0 => $user->lang['ALL_TOPICS'], 1 => $user->lang['1_DAY'], 7 => $user->lang['7_DAYS'], 14 => $user->lang['2_WEEKS'], 30 => $user->lang['1_MONTH'], 90 => $user->lang['3_MONTHS'], 180 => $user->lang['6_MONTHS'], 364 => $user->lang['1_YEAR']); @@ -1151,33 +1179,33 @@ function marklist(match, status) $sort_by_sql = array('a' => 't.topic_first_poster_name', 't' => 't.topic_last_post_time', 'r' => 't.topic_replies', 's' => 't.topic_title', 'v' => 't.topic_views'); $s_limit_days = $s_sort_key = $s_sort_dir = ''; - gen_sort_selects($limit_days, $sort_by_text, $user_show_days, $user_sortby_type, $user_sortby_dir, $s_limit_days, $s_sort_key, $s_sort_dir); + gen_sort_selects($limit_days, $sort_by_text, $userrow['user_show_days'], $userrow['user_sortby_type'], $userrow['user_sortby_dir'], $s_limit_days, $s_sort_key, $s_sort_dir); ?> lang['USER_ADMIN_PREFS']; ?> - + lang['VIEW_IMAGES']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['VIEW_FLASH']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['VIEW_SMILIES']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['VIEW_SIGS']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['VIEW_AVATARS']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['DISABLE_CENSORS']; ?>: />lang['YES']; ?>   />lang['NO']; ?> @@ -1185,91 +1213,91 @@ function marklist(match, status) lang['MINIMUM_KARMA']; ?>:
lang['MINIMUM_KARMA_EXPLAIN']; ?> - + lang['VIEW_TOPICS_DAYS']; ?>: - + lang['VIEW_TOPICS_KEY']; ?>: - + lang['VIEW_TOPICS_DIR']; ?>: lang['USER_POSTING_PREFS']; ?> - + lang['DEFAULT_BBCODE']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['DEFAULT_HTML']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['DEFAULT_SMILIES']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['DEFAULT_ADD_SIG']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['DEFAULT_NOTIFY']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['SHOW_EMAIL']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['ADMIN_EMAIL']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['ALLOW_PM']; ?>:
lang['ALLOW_PM_EXPLAIN']; ?> />lang['YES']; ?>   />lang['NO']; ?> - + lang['HIDE_ONLINE']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['NOTIFY_METHOD']; ?>:
lang['NOTIFY_METHOD_EXPLAIN']; ?> />lang['NOTIFY_METHOD_EMAIL']; ?>   />lang['NOTIFY_METHOD_IM']; ?>   />lang['NOTIFY_METHOD_BOTH']; ?> - + lang['NOTIFY_ON_PM']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['POPUP_ON_PM']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['BOARD_LANGUAGE']; ?>: - + - + lang['BOARD_STYLE']; ?>: - + - + lang['BOARD_TIMEZONE']; ?>: - + - + lang['BOARD_DST']; ?>: />lang['YES']; ?>   />lang['NO']; ?> - + lang['BOARD_DATE_FORMAT']; ?>:
lang['BOARD_DATE_FORMAT_EXPLAIN']; ?> - +    @@ -1285,10 +1313,10 @@ function marklist(match, status) if ($submit) { $var_ary = array( - 'uploadurl' => (string) '', - 'remotelink' => (string) '', + 'uploadurl' => (string) '', + 'remotelink' => (string) '', 'width' => (string) '', - 'height' => (string) '', + 'height' => (string) '', ); foreach ($var_ary as $var => $default) @@ -1297,10 +1325,10 @@ function marklist(match, status) } $var_ary = array( - 'uploadurl' => array('string', true, 5, 255), - 'remotelink' => array('string', true, 5, 255), - 'width' => array('string', true, 1, 3), - 'height' => array('string', true, 1, 3), + 'uploadurl' => array('string', true, 5, 255), + 'remotelink' => array('string', true, 5, 255), + 'width' => array('string', true, 1, 3), + 'height' => array('string', true, 1, 3), ); $error = validate_data($data, $var_ary); @@ -1329,14 +1357,14 @@ function marklist(match, status) if (sizeof($data)) { $sql_ary = array( - 'user_avatar' => $filename, - 'user_avatar_type' => $type, - 'user_avatar_width' => $width, - 'user_avatar_height' => $height, + 'user_avatar' => $filename, + 'user_avatar_type' => $type, + 'user_avatar_width' => $width, + 'user_avatar_height' => $height, ); - $sql = 'UPDATE ' . USERS_TABLE . ' - SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " + $sql = 'UPDATE ' . USERS_TABLE . ' + SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " WHERE user_id = $user_id"; $db->sql_query($sql); @@ -1349,9 +1377,6 @@ function marklist(match, status) trigger_error($message); } - - extract($data); - unset($data); } $colspan = 2; @@ -1361,9 +1386,9 @@ function marklist(match, status) // Generate users avatar $avatar_img = ''; - if ($user_avatar) + if ($userrow['user_avatar']) { - switch ($user_avatar_type) + switch ($userrow['user_avatar_type']) { case AVATAR_UPLOAD: $avatar_img = $phpbb_root_path . $config['avatar_path'] . '/'; @@ -1372,9 +1397,9 @@ function marklist(match, status) $avatar_img = $phpbb_root_path . $config['avatar_gallery_path'] . '/'; break; } - $avatar_img .= $user_avatar; + $avatar_img .= $userrow['user_avatar']; - $avatar_img = ''; + $avatar_img = ''; } else { @@ -1385,7 +1410,7 @@ function marklist(match, status) lang['USER_ADMIN_AVATAR']; ?> - + lang['CURRENT_IMAGE']; ?>:
lang['AVATAR_EXPLAIN'], $config['avatar_max_width'], $config['avatar_max_height'], round($config['avatar_filesize'] / 1024)); ?>


 lang['DELETE_AVATAR']; ?> @@ -1396,26 +1421,26 @@ function marklist(match, status) { ?> - + lang['UPLOAD_AVATAR_FILE']; ?>: - + lang['UPLOAD_AVATAR_URL']; ?>:
lang['UPLOAD_AVATAR_URL_EXPLAIN']; ?> - + - + lang['LINK_REMOTE_AVATAR']; ?>:
lang['LINK_REMOTE_AVATAR_EXPLAIN']; ?> - + - + lang['LINK_REMOTE_SIZE']; ?>:
lang['LINK_REMOTE_SIZE_EXPLAIN']; ?> - px X px + px X px - + lang['AVATAR_GALLERY']; ?>: @@ -1436,17 +1461,17 @@ function marklist(match, status) { ?> - + lang['AVATAR_GALLERY']; ?> - + lang['AVATAR_CATEGORY']; ?>:   lang['AVATAR_PAGE']; ?>:   - + - + - + @@ -1478,39 +1503,39 @@ function marklist(match, status) if ($submit || $preview) { $var_ary = array( - 'enable_html' => (bool) $config['allow_html'], - 'enable_bbcode' => (bool) $config['allow_bbcode'], + 'enable_html' => (bool) $config['allow_html'], + 'enable_bbcode' => (bool) $config['allow_bbcode'], 'enable_smilies' => (bool) $config['allow_smilies'], - 'enable_urls' => true, - 'signature' => (string) $user_sig, + 'enable_urls' => true, + 'signature' => (string) $user_sig, ); foreach ($var_ary as $var => $default) { - $$var = request_var($var, $default); + $data[$var] = request_var($var, $default); } // NOTE: allow_img and allow_flash do not exist in config table - $img_status = ($config['allow_img']) ? true : false; - $flash_status = ($config['allow_flash']) ? true : false; + $img_status = ($config['allow_img']) ? true : false; + $flash_status = ($config['allow_flash']) ? true : false; include($phpbb_root_path . 'includes/message_parser.'.$phpEx); - $message_parser = new parse_message($signature); + $message_parser = new parse_message($data['signature']); // Allowing Quote BBCode - $message_parser->parse($enable_html, $enable_bbcode, $enable_urls, $enable_smilies, $img_status, $flash_status, true); + $message_parser->parse($data['enable_html'], $data['enable_bbcode'], $data['enable_urls'], $data['enable_smilies'], $img_status, $flash_status, true); if ($submit) { $sql_ary = array( - 'user_sig' => (string) $message_parser->message, - 'user_sig_bbcode_uid' => (string) $message_parser->bbcode_uid, + 'user_sig' => (string) $message_parser->message, + 'user_sig_bbcode_uid' => (string) $message_parser->bbcode_uid, 'user_sig_bbcode_bitfield' => (int) $message_parser->bbcode_bitfield ); - $sql = 'UPDATE ' . USERS_TABLE . ' - SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " + $sql = 'UPDATE ' . USERS_TABLE . ' + SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " WHERE user_id = $user_id"; $db->sql_query($sql); @@ -1527,17 +1552,17 @@ function marklist(match, status) if ($preview) { // Now parse it for displaying - $signature_preview = $message_parser->format_display($enable_html, $enable_bbcode, $enable_urls, $enable_smilies, false); + $signature_preview = $message_parser->format_display($data['enable_html'], $data['enable_bbcode'], $data['enable_urls'], $data['enable_smilies'], false); unset($message_parser); } - decode_message($user_sig, $user_sig_bbcode_uid); + decode_message($userrow['user_sig'], $userrow['user_sig_bbcode_uid']); ?> - +
{avatar_row.avatar_column.AVATAR_NAME}
lang['USER_ADMIN_SIG']; ?>
lang['SIGNATURE']; ?>: @@ -1569,7 +1594,7 @@ function marklist(match, status) - +
@@ -1607,7 +1632,7 @@ function marklist(match, status) if ($config['allow_html']) { - + ?> @@ -1619,7 +1644,7 @@ function marklist(match, status) if ($config['allow_bbcode']) { - + ?> @@ -1631,7 +1656,7 @@ function marklist(match, status) if ($config['allow_smilies']) { - + ?> @@ -1640,7 +1665,7 @@ function marklist(match, status) @@ -1655,18 +1680,18 @@ function marklist(match, status) if ($signature_preview) { - + ?> - + lang['CONFIRM'], $user->lang['CONFIRM_OPERATION']); } - else if (!$cancel) + else if (!$cancel) { if (!$gid) { @@ -1730,13 +1755,13 @@ function marklist(match, status) sql_query($sql); - + $i = 0; $group_data = $id_ary = array(); while ($row = $db->sql_fetchrow($result)) @@ -1754,8 +1779,8 @@ function marklist(match, status) $db->sql_freeresult($result); // Select box for other groups - $sql = 'SELECT group_id, group_name, group_type - FROM ' . GROUPS_TABLE . ' + $sql = 'SELECT group_id, group_name, group_type + FROM ' . GROUPS_TABLE . ' WHERE group_id NOT IN (' . implode(', ', $id_ary) . ') ORDER BY group_type DESC, group_name ASC'; $result = $db->sql_query($sql); @@ -1788,29 +1813,29 @@ function marklist(match, status) ?> - @@ -1840,7 +1865,7 @@ function marklist(match, status) { adm_page_confirm($user->lang['CONFIRM'], $user->lang['CONFIRM_OPERATION']); } - else if (!$cancel) + else if (!$cancel) { $sql = 'SELECT real_filename FROM ' . ATTACHMENTS_TABLE . ' @@ -1865,14 +1890,14 @@ function marklist(match, status) } $colspan = 6; - + $uri = "admin_users.$phpEx$SID&mode=$mode&action=$action&u=$user_id"; $sk_text = array('a' => $user->lang['SORT_FILENAME'], 'b' => $user->lang['SORT_COMMENT'], 'c' => $user->lang['SORT_EXTENSION'], 'd' => $user->lang['SORT_SIZE'], 'e' => $user->lang['SORT_DOWNLOADS'], 'f' => $user->lang['SORT_POST_TIME'], 'g' => $user->lang['SORT_TOPIC_TITLE']); $sk_sql = array('a' => 'a.real_filename', 'b' => 'a.comment', 'c' => 'a.extension', 'd' => 'a.filesize', 'e' => 'a.download_count', 'f' => 'a.filetime', 'g' => 't.topic_title'); $sd_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']); - + $s_sort_key = ''; foreach ($sk_text as $key => $value) { @@ -1888,7 +1913,7 @@ function marklist(match, status) } $order_by = $sk_sql[$sk] . ' ' . (($sd == 'a') ? 'ASC' : 'DESC'); - + $sql = 'SELECT COUNT(*) as num_attachments FROM ' . ATTACHMENTS_TABLE . " WHERE poster_id = $user_id"; @@ -1938,11 +1963,11 @@ function marklist(match, status) sql_fetchrow($result)); } $db->sql_freeresult($result); - + $pagination = generate_pagination("$uri&sk=$sk&sd=$sd", $num_attachments, $config['topics_per_page'], $start); ?> @@ -2005,7 +2030,7 @@ if (!$auth->acl_get('a_user')) - +
lang['ADMIN_SIGNATURE_PREVIEW']; ?>
">lang['G_' . $data['group_name']] : $data['group_name']; ?> " width="10%" nowrap="nowrap"> ">lang['GROUP_DEFAULT']; ?>lang['GROUP_DEFAULT']; } - + ?>   ">lang['GROUP_DEMOTE'] : $user->lang['GROUP_PROMOTE']; ?>   ">lang['GROUP_DELETE']; ?> 
lang['SELECT_USER']; ?>
lang['FIND_USERNAME']; ?>:
[ " onclick="window.open('', '_phpbbsearch', 'HEIGHT=500,resizable=yes,scrollbars=yes,WIDTH=740');return false;">lang['FIND_USERNAME']; ?> ]