acl_gets('a_user', 'a_useradd', 'a_userdel')) { return; } $module['USER']['MANAGE_USERS'] = basename(__FILE__) . $SID; return; } define('IN_PHPBB', 1); // Include files $phpbb_root_path = '../'; $phpEx = substr(strrchr(__FILE__, '.'), 1); require('pagestart.' . $phpEx); include($phpbb_root_path.'includes/functions_user.'.$phpEx); include($phpbb_root_path.'includes/functions_profile_fields.'.$phpEx); // // Get and set basic vars // $mode = request_var('mode', ''); $action = request_var('action', 'overview'); $start = request_var('start', 0); $username = request_var('username', ''); $user_id = request_var('u', 0); $ip = request_var('ip', ''); $start = request_var('start', 0); $delete = request_var('delete', ''); $deletetype = request_var('deletetype', ''); $marked = request_var('mark', 0); $quicktools = request_var('quicktools', ''); $submit = (isset($_POST['update'])) ? true : false; $confirm = (isset($_POST['confirm'])) ? true : false; $cancel = (isset($_POST['cancel'])) ? true : false; $preview = (isset($_POST['preview'])) ? true : false; $deletemark = (isset($_POST['delmarked'])) ? true : false; $deleteall = (isset($_POST['delall'])) ? true : false; $error = array(); // // Whois output // if ($action == 'whois') { // Output relevant page adm_page_header($user->lang['WHOIS']); if ($ip && $domain = gethostbyaddr($ip)) { ?>
IP whois for
\2\3', $ipwhois); echo '
' . trim($ipwhois) . '
'; } ?>

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 LIMIT 1" : 'SELECT * FROM ' . USERS_TABLE . " WHERE $sql_where"; $result = $db->sql_query($sql); if (!extract($db->sql_fetchrow($result))) { trigger_error($user->lang['NO_USER']); } $db->sql_freeresult($result); if ($session_time > $user_lastvisit) { $user_lastvisit = $session_time; $user_lastpage = $session_page; } $user_password = ''; } // Output page adm_page_header($user->lang['MANAGE']); // // User has submitted a form, process it // if ($submit || $preview || $deleteall || $deletemark) { switch ($action) { case 'overview': if ($delete && $user_type != USER_FOUNDER) { if (!$auth->acl_get('a_userdel')) { trigger_error($user->lang['NO_ADMIN']); } if (!$cancel && !$confirm) { adm_page_confirm($user->lang['CONFIRM'], $user->lang['CONFIRM_OPERATION']); } else if (!$cancel) { user_delete($deletetype, $user_id); add_log('admin', 'LOG_USER_DELETED', $username); trigger_error($user->lang['USER_DELETED']); } } // Handle quicktool actions if ($quicktools && $user_type != USER_FOUNDER) { switch ($quicktools) { case 'banuser': case 'banemail': case 'banip': $ban = array(); switch ($quicktools) { case 'banuser': $ban[] = $username; $reason = 'USER_ADMIN_BAN_NAME_REASON'; $log = 'LOG_BAN_USERNAME_USER'; break; case 'banemail': $ban[] = $user_email; $reason = 'USER_ADMIN_BAN_EMAIL_REASON'; $log = 'LOG_BAN_EMAIL_USER'; break; case 'banip': $ban[] = $user_ip; $sql = 'SELECT DISTINCT poster_ip FROM ' . POSTS_TABLE . " WHERE poster_id = $user_id"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $ban[] = $row['poster_ip']; } $db->sql_freeresult($result); $reason = 'USER_ADMIN_BAN_IP_REASON'; $log = 'LOG_BAN_IP_USER'; break; } user_ban(substr($quicktools, 3), $ban, 0, 0, 0, $user->lang[$reason]); add_log('user', $user_id, $log); trigger_error($user->lang['BAN_UPDATE_SUCESSFUL']); break; case 'reactivate': if ($config['email_enable']) { include_once($phpbb_root_path . 'includes/functions_messenger.'.$phpEx); $user_actkey = gen_rand_string(10); $key_len = 54 - (strlen($server_url)); $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); $messenger = new messenger(); $messenger->template('user_welcome_inactive', $user_lang); $messenger->subject(); $messenger->replyto($config['board_contact']); $messenger->to($user_email, $username); $messenger->headers('X-AntiAbuse: Board servername - ' . $config['server_name']); $messenger->headers('X-AntiAbuse: User_id - ' . $user->data['user_id']); $messenger->headers('X-AntiAbuse: Username - ' . $user->data['username']); $messenger->headers('X-AntiAbuse: User IP - ' . $user->ip); $messenger->assign_vars(array( 'SITENAME' => $config['sitename'], 'WELCOME_MSG' => sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename']), 'USERNAME' => $username, 'PASSWORD' => $password_confirm, 'EMAIL_SIG' => str_replace('
', "\n", "-- \n" . $config['board_email_sig']), 'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u=$user_id&k=$user_actkey") ); $messenger->send(NOTIFY_EMAIL); $messenger->queue->save(); add_log('admin', 'LOG_USER_REACTIVATE', $username); add_log('user', $user_id, 'LOG_USER_REACTIVATE_USER'); trigger_error($user->lang['USER_ADMIN_REACTIVATE']); } break; case 'active': user_active_flip($user_id, $user_type, false, $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('user', $user_id, $log . '_USER'); trigger_error($user->lang[$message]); break; case 'moveposts': if (!($new_forum_id = request_var('new_f', 0))) { ?>

lang['USER_ADMIN']; ?>

lang['USER_ADMIN_EXPLAIN']; ?>

">
lang['USER_ADMIN_MOVE_POSTS']; ?>
lang['MOVE_POSTS_EXPLAIN']; ?>

 
$new_forum_id GROUP BY topic_id"; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $topic_id_ary[$row['topic_id']] = $row['total_posts']; } $db->sql_freeresult($result); $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); $move_topic_ary = $move_post_ary = array(); while ($row = $db->sql_fetchrow($result)) { if (max($row['topic_replies'], $row['topic_replies_real']) + 1 == $topic_id_ary[$row['topic_id']]) { $move_topic_ary[] = $row['topic_id']; } else { $move_post_ary[$row['topic_id']]['title'] = $row['topic_title']; $move_post_ary[$row['topic_id']]['attach'] = ($row['attach']) ? 1 : 0; } $forum_id_ary[] = $row['forum_id']; } $db->sql_freeresult($result); // Entire topic comprises posts by this user, move these topics if (sizeof($move_topic_ary)) { move_topics($move_topic_ary, $new_forum_id, false); } if (sizeof($move_post_ary)) { // Create new topic // Update post_ids, report_ids, attachment_ids foreach ($move_post_ary as $topic_id => $post_ary) { // Create new topic $sql = 'INSERT INTO ' . TOPICS_TABLE . ' ' . $db->sql_build_array('INSERT', array( 'topic_poster' => $user_id, 'topic_time' => time(), 'forum_id' => $new_forum_id, 'icon_id' => 0, 'topic_approved' => 1, 'topic_title' => $post_ary['title'], 'topic_first_poster_name' => $username, 'topic_type' => POST_NORMAL, 'topic_time_limit' => 0, 'topic_attachment' => $post_ary['attach'],) ); $db->sql_query($sql); $new_topic_id = $db->sql_nextid(); // Move posts $sql = 'UPDATE ' . POSTS_TABLE . " 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); if ($post_ary['attach']) { $sql = 'UPDATE ' . ATTACHMENTS_TABLE . " SET topic_id = $new_topic_id WHERE topic_id = $topic_id AND poster_id = $user_id"; $db->sql_query($sql); } $new_topic_id_ary[] = $new_topic_id; } } $forum_id_ary = array_unique($forum_id_ary); $topic_id_ary = array_unique(array_merge($topic_id_ary, $new_topic_id_ary)); sync('reported', 'topic_id', $topic_id_ary); sync('topic', 'topic_id', $topic_id_ary); sync('forum', 'forum_id', $forum_id_ary); } break; } $sql = 'SELECT forum_name FROM ' . TOPICS_TABLE . " WHERE topic_id = $new_forum_id"; $result = $db->sql_query($sql); extract($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); 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, 'email_confirm' => (string) '', 'user_password' => (string) '', 'password_confirm' => (string) '', 'user_warnings' => (int) $user_warnings, ); foreach ($var_ary as $var => $default) { $data[$var] = request_var($var, $default); } $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']), ); // Check username if altered if ($username != $data['username']) { $var_ary += array( 'username' => array( array('string', false, $config['min_name_chars'], $config['max_name_chars']), array('username', $username)), ); } $error = validate_data($data, $var_ary); if ($data['user_password'] && $data['password_confirm'] != $data['user_password']) { $error[] = 'NEW_PASSWORD_ERROR'; } if ($user_email != $data['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_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, ); if ($update_password) { $sql_ary += array( 'user_password' => md5($user_password), 'user_passchg' => time(), ); } $sql = 'UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' WHERE user_id = ' . $user->data['user_id']; $db->sql_query($sql); // TODO if ($update_warning) { } if ($update_username) { user_update_name($update_username, $username); } trigger_error($user->lang['USER_OVERVIEW_UPDATED']); } // Replace "error" strings with their real, localised form $error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error); break; case 'feedback': if (($deletemark || $deleteall) && $auth->acl_get('a_clearlogs')) { $where_sql = ''; if ($deletemark && $marked) { $sql_in = array(); foreach ($marked as $mark) { $sql_in[] = $mark; } $where_sql = ' AND log_id IN (' . implode(', ', $sql_in) . ')'; unset($sql_in); } $sql = 'DELETE FROM ' . LOG_TABLE . ' WHERE log_type = ' . LOG_USERS . " $where_sql"; $db->sql_query($sql); add_log('admin', 'LOG_USERS_CLEAR'); trigger_error(""); } if ($message = request_var('message', '')) { add_log('admin', 'LOG_USER_FEEDBACK', $username); add_log('user', $user_id, 'LOG_USER_GENERAL', $message); trigger_error($user->lang['USER_FEEDBACK_ADDED']); } break; case 'profile': $var_ary = array( 'icq' => (string) '', 'aim' => (string) '', 'msn' => (string) '', 'yim' => (string) '', 'jabber' => (string) '', 'website' => (string) '', 'location' => (string) '', 'occupation' => (string) '', 'interests' => (string) '', 'bday_day' => 0, 'bday_month' => 0, 'bday_year' => 0, ); foreach ($var_ary as $var => $default) { $data[$var] = request_var($var, $default); } $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), 'jabber' => array( 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), '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), '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); 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), ); $sql = 'UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " WHERE user_id = $user_id"; $db->sql_query($sql); /* // Update Custom Fields if (sizeof($cp_data)) { $sql = 'UPDATE ' . CUSTOM_PROFILE_DATA . ' SET ' . $db->sql_build_array('UPDATE', $cp_data) . " WHERE user_id = $user_id"; $db->sql_query($sql); if (!$db->sql_affectedrows()) { $cp_data['user_id'] = $user_id; $db->return_on_error = true; $sql = 'INSERT INTO ' . 'phpbb_profile_fields_data' . ' ' . $db->sql_build_array('INSERT', $cp_data); $db->sql_query(); $db->return_on_error = false; } } */ trigger_error($user->lang['USER_PROFILE_UPDATED']); } break; case 'prefs': $var_ary = array( '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_min_karma' => (int) -5, '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, 'smile' => true, 'attachsig' => true, ); foreach ($var_ary as $var => $default) { $data[$var] = request_var($var, $default); } $var_ary = array( 'user_dateformat' => array('string', false, 3, 15), 'user_lang' => array('match', false, '#^[a-z_]{2,}$#i'), 'user_tz' => array('num', false, -13, 13), 'user_min_karma' => array('num', false, -5, 5), '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 $user_options = $user->optionset('popuppm', $popuppm, $user_options); $user_options = $user->optionset('viewimg', $viewimg, $user_options); $user_options = $user->optionset('viewflash', $viewflash, $user_options); $user_options = $user->optionset('viewsmilies', $viewsmilies, $user_options); $user_options = $user->optionset('viewsigs', $viewsigs, $user_options); $user_options = $user->optionset('viewavatars', $viewavatars, $user_options); $user_options = $user->optionset('viewcensors', $viewcensors, $user_options); $user_options = $user->optionset('bbcode', $bbcode, $user_options); $user_options = $user->optionset('html', $html, $user_options); $user_options = $user->optionset('smile', $smile, $user_options); $user_options = $user->optionset('attachsig', $attachsig, $user_options); 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_min_karma' => $user_min_karma, '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, ); $sql = 'UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " WHERE user_id = $user_id"; $db->sql_query($sql); trigger_error($user->lang['USER_PREFS_UPDATED']); } $user_sortby_type = $sk; $user_sortby_dir = $sd; $user_show_days = $st; break; case 'avatar': $can_upload = (file_exists($phpbb_root_path . $config['avatar_path']) && is_writeable($phpbb_root_path . $config['avatar_path']) && $file_uploads) ? true : false; $var_ary = array( 'uploadurl' => (string) '', 'remotelink' => (string) '', 'width' => (string) '', 'height' => (string) '', ); foreach ($var_ary as $var => $default) { $data[$var] = request_var($var, $default); } $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), ); $error = validate_data($data, $var_ary); if (!sizeof($error)) { $data['user_id'] = $user_id; if ((!empty($_FILES['uploadfile']['tmp_name']) || $data['uploadurl']) && $can_upload) { list($type, $filename, $width, $height) = avatar_upload($data, $error); } else if ($data['remotelink']) { list($type, $filename, $width, $height) = avatar_remote($data, $error); } else if ($delete) { $type = $filename = $width = $height = ''; } } if (!sizeof($error)) { // Do we actually have any data to update? if (sizeof($data)) { $sql_ary = array( '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) . " WHERE user_id = $user_id"; $db->sql_query($sql); // Delete old avatar if present if ($user_avatar && $filename != $user_avatar) { avatar_delete($user_avatar); } } trigger_error($message); } extract($data); unset($data); break; case 'sig': $var_ary = array( '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, ); foreach ($var_ary as $var => $default) { $$var = request_var($var, $default); } if (!$preview) { include($phpbb_root_path . 'includes/message_parser.'.$phpEx); $message_parser = new parse_message($signature); $message_parser->parse($enable_html, $enable_bbcode, $enable_urls, $enable_smilies); $sql_ary = array( '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) . " WHERE user_id = $user_id"; $db->sql_query($sql); $message = $user->lang['PROFILE_UPDATED'] . '

' . sprintf($user->lang['RETURN_UCP'], "", ''); trigger_error($message); } break; case 'groups': break; case 'permissions': break; case 'attach': $delete_ids = isset($_REQUEST['attachment']) ? array_keys(array_map('intval', $_REQUEST['attachment'])) : array(); if ($deletemark && sizeof($delete_ids)) { if (!$cancel && !$confirm) { adm_page_confirm($user->lang['CONFIRM'], $user->lang['CONFIRM_OPERATION']); } else if (!$cancel) { $log_attachments = array(); $sql = 'SELECT real_filename FROM ' . ATTACHMENTS_TABLE . ' WHERE attach_id IN (' . implode(', ', $delete_ids) . ')'; $result = $db->sql_query($sql); while ($row = $db->sql_fetchrow($result)) { $log_attachments[] = $row['real_filename']; } $db->sql_freeresult($result); delete_attachments('attach', $delete_ids); add_log('admin', ((sizeof($delete_ids) == 1) ? 'ATTACHMENT_DELETED' : 'ATTACHMENTS_DELETED'), implode(', ', $log_attachments)); $message = ((sizeof($delete_ids) == 1) ? $user->lang['ATTACHMENT_DELETED'] : $user->lang['ATTACHMENTS_DELETED']) . '

' . sprintf($user->lang['RETURN_UCP'], "", ''); trigger_error($message); } } break; } } // // Output forms // // Begin program if ($username || $user_id) { // Generate overall "header" for user admin $form_options = ''; $forms_ary = array('overview' => 'OVERVIEW', 'feedback' => 'FEEDBACK', 'profile' => 'PROFILE', 'prefs' => 'PREFS', 'avatar' => 'AVATAR', 'sig' => 'SIG', 'groups' => 'GROUP', 'perm' => 'PERM', 'attach' => 'ATTACH'); foreach ($forms_ary as $value => $lang) { $selected = ($action == $value) ? ' selected="selected"' : ''; $form_options .= ''; } $pagination = ''; $colspan = ($action == 'attach') ? '6' : '2'; $show_bottom = ($action == 'attach') ? false : true; ?>

lang['USER_ADMIN']; ?>

lang['USER_ADMIN_EXPLAIN']; ?>

">
lang['SELECT_FORM']; ?>:
'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'), 'moveposts' => 'MOVE_POSTS'); if ($config['email_enable']) { $quick_tool_ary['reactivate'] = 'FORCE'; } asort($quick_tool_ary); $options = ''; foreach ($quick_tool_ary as $value => $lang) { $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->lang['ALL_ENTRIES'], 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']); $sort_by_text = array('u' => $user->lang['SORT_USERNAME'], 't' => $user->lang['SORT_DATE'], 'i' => $user->lang['SORT_IP'], 'o' => $user->lang['SORT_ACTION']); $sort_by_sql = array('u' => 'l.user_id', 't' => 'l.log_time', 'i' => 'l.log_ip', 'o' => 'l.log_operation'); $s_limit_days = $s_sort_key = $s_sort_dir = ''; gen_sort_selects($limit_days, $sort_by_text, $st, $sk, $sd, $s_limit_days, $s_sort_key, $s_sort_dir); // Define where and sort sql for use in displaying logs $sql_where = ($st) ? (time() - ($st * 86400)) : 0; $sql_sort = $sort_by_sql[$sk] . ' ' . (($sd == 'd') ? 'DESC' : 'ASC'); ?>
lang['USER_ADMIN_' . strtoupper($action)]; ?>
', $error); ?>
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); ?>
lang['REGISTERED_IP']; ?>: ' . (($ip == 'hostname') ? gethostbyaddr($user_ip) : $user_ip) . " [ " . $user->lang['WHOIS'] . ' ]'; ?>
lang['LAST_ACTIVE']; ?>: format_date($user_lastvisit); ?>
lang['FOUNDER']; ?>:
lang['FOUNDER_EXPLAIN']; ?>
/>lang['YES']; ?>  />lang['NO']; ?>
lang['EMAIL']; ?>:
lang['CONFIRM_EMAIL']; ?>:
lang['CONFIRM_EMAIL_EXPLAIN']; ?>
lang['NEW_PASSWORD']; ?>:
lang['CHANGE_PASSWORD_EXPLAIN'], $config['min_pass_chars'], $config['max_pass_chars']) ?>
lang['CONFIRM_PASSWORD']; ?>:
lang['CONFIRM_PASSWORD_EXPLAIN']; ?>
lang['USER_TOOLS']; ?>
lang['WARNINGS']; ?>:
lang['WARNINGS_EXPLAIN']; ?>
lang['QUICK_TOOLS']; ?>:
lang['DELETE_USER']; ?>:
lang['DELETE_USER_EXPLAIN']; ?>
lang['DISPLAY_LOG']; ?>:   lang['SORT_BY']; ?>:  
Report by: on format_date($log_data[$i]['time']); ?>
No reports exist for this user
acl_get('a_clearlogs')) { ?>   

lang['ADD_FEEDBACK']; ?>

lang['ADD_FEEDBACK_EXPLAIN']; ?>

--'; for ($i = 1; $i < 32; $i++) { $selected = ($i == $bday_day) ? ' selected="selected"' : ''; $s_birthday_day_options .= ""; } $s_birthday_month_options = ''; for ($i = 1; $i < 13; $i++) { $selected = ($i == $bday_month) ? ' selected="selected"' : ''; $s_birthday_month_options .= ""; } $s_birthday_year_options = ''; $now = getdate(); $s_birthday_year_options = ''; for ($i = $now['year'] - 100; $i < $now['year']; $i++) { $selected = ($i == $bday_year) ? ' selected="selected"' : ''; $s_birthday_year_options .= ""; } unset($now); // Get additional profile fields and assign them to the template block var 'profile_fields' // $user->get_profile_fields($user->data['user_id']); // $cp->generate_profile_fields('profile', $user->get_iso_lang_id(), $cp_error); ?> optionget($option, $user_options)) ? ' checked="checked"' : ''; ${$option . '_no'} = (!$user->optionget($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"' : ''; // 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']); $sort_by_text = array('a' => $user->lang['AUTHOR'], 't' => $user->lang['POST_TIME'], 'r' => $user->lang['REPLIES'], 's' => $user->lang['SUBJECT'], 'v' => $user->lang['VIEWS']); $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); ?> '; } else { $avatar_img = ''; } ?> parse($enable_html, $enable_bbcode, $enable_urls, $enable_smilies); $signature_preview = $message_parser->message; if ($enable_bbcode) { include($phpbb_root_path . 'includes/bbcode.'.$phpEx); $bbcode = new bbcode($message_parser->bbcode_bitfield); $bbcode->bbcode_second_pass($signature_preview, $message_parser->bbcode_uid); } // If we allow users to disable display of emoticons // we'll need an appropriate check and preg_replace here $signature_preview = smilie_text($signature_preview, !$enable_smilies); // Replace naughty words such as farty pants /* if (sizeof($censors)) { $signature_preview = str_replace('\"', '"', substr(preg_replace('#(\>(((?>([^><]+|(?R)))*)\<))#se', "preg_replace(\$censors['match'], \$censors['replace'], '\\0')", '>' . $signature_preview . '<'), 1, -1)); }*/ $signature_preview = str_replace("\n", '
', censor_text($signature_preview)); } decode_text($user_sig, $user_sig_bbcode_uid); ?> $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']); $sort_key_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'); $sort_dir_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']); $s_sort_key = ''; foreach ($sort_key_text as $key => $value) { $selected = ($sort_key == $key) ? ' selected="selected"' : ''; $s_sort_key .= ''; } $s_sort_dir = ''; foreach ($sort_dir_text as $key => $value) { $selected = ($sort_dir == $key) ? ' selected="selected"' : ''; $s_sort_dir .= ''; } $order_by = $sort_key_sql[$sort_key] . ' ' . (($sort_dir == 'a') ? 'ASC' : 'DESC'); $sql = 'SELECT COUNT(*) as num_attachments FROM ' . ATTACHMENTS_TABLE . " WHERE poster_id = $user_id"; $result = $db->sql_query_limit($sql, 1); $num_attachments = $db->sql_fetchfield('num_attachments', 0, $result); $db->sql_freeresult($result); $sql = 'SELECT a.*, t.topic_title FROM ' . ATTACHMENTS_TABLE . ' a, ' . TOPICS_TABLE . " t WHERE a.topic_id = t.topic_id AND a.poster_id = $user_id ORDER BY $order_by"; $result = $db->sql_query_limit($sql, $config['posts_per_page'], $start); $row_count = 0; if ($row = $db->sql_fetchrow($result)) { $class = 'row2'; ?> sql_fetchrow($result)); } $db->sql_freeresult($result); $pagination = generate_pagination($uri . "&sk=$sort_key&sd=$sort_dir", $num_attachments, $config['posts_per_page'], $start) ?>
lang['USER_ADMIN_' . strtoupper($action)]; ?>
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']; ?>:
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']; ?>
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_SMILE']; ?>: />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']; ?>
lang['CURRENT_IMAGE']; ?>:
lang['AVATAR_EXPLAIN'], $config['avatar_max_width'], $config['avatar_max_height'], round($config['avatar_filesize'] / 1024)); ?>



 lang['DELETE_AVATAR']; ?>
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
lang['AVATAR_GALLERY']; ?>:
lang['AVATAR_GALLERY']; ?>
lang['AVATAR_CATEGORY']; ?>:   lang['AVATAR_PAGE']; ?>:  
{avatar_row.avatar_column.AVATAR_NAME}
lang['SIGNATURE']; ?>:
 lang['FONT_SIZE']; ?>: lang['CLOSE_TAGS']; ?>
lang['OPTIONS']; ?>
lang['HTML_IS_ON'] : $user->lang['HTML_IS_OFF']; ?>
lang['BBCODE_IS_ON'], "", '') : sprintf($user->lang['BBCODE_IS_OFF'], "", ''); ?>
lang['IMAGES_ARE_ON'] : $user->lang['IMAGES_ARE_OFF']; ?>
lang['FLASH_IS_ON'] : $user->lang['FLASH_IS_OFF']; ?>
lang['SMILIES_ARE_ON'] : $user->lang['SMILIES_ARE_OFF']; ?>
lang['DISABLE_HTML']; ?>
lang['DISABLE_BBCODE']; ?>
lang['DISABLE_SMILIES']; ?>
lang['DISABLE_MAGIC_URL']; ?>
lang['ADMIN_SIGNATURE_PREVIEW']; ?>
# lang['FILENAME']; ?> lang['POST_TIME']; ?> lang['FILESIZE']; ?> lang['DOWNLOADS']; ?> lang['DELETE']; ?>
  
lang['TOPIC']; ?>:
 format_date($row['filetime'], $user->lang['DATE_FORMAT']); ?>  = 1048576) ? (round($row['filesize'] / 1048576 * 100) / 100) . ' ' . $user->lang['MB'] : (($row['filesize'] >= 1024) ? (round($row['filesize'] / 1024 * 100) / 100) . ' ' . $user->lang['KB'] : $row['filesize'] . ' ' . $user->lang['BYTES']); ?>
lang['SORT_BY']; ?>:    
lang['PREVIEW'] . '" />  ' : ''; ?>  
acl_get('a_user')) { trigger_error($user->lang['No_admin']); } ?>

lang['USER_ADMIN']; ?>

lang['USER_ADMIN_EXPLAIN']; ?>

">
lang['SELECT_USER']; ?>
Lookup existing user:
[ " onclick="window.open('', '_phpbbsearch', 'HEIGHT=500,resizable=yes,scrollbars=yes,WIDTH=740');return false;">lang['FIND_USERNAME']; ?> ]