diff options
| author | Meik Sievertsen <acydburn@phpbb.com> | 2006-06-11 18:13:52 +0000 |
|---|---|---|
| committer | Meik Sievertsen <acydburn@phpbb.com> | 2006-06-11 18:13:52 +0000 |
| commit | 01b41453812dc7b990f03b81f85dcfb9a18076fd (patch) | |
| tree | d12e93524fa7625d1220088d34a5a957cd618624 /phpBB/includes/ucp | |
| parent | ce3b07eee7dbefc68dcd8eab3ab667e6532c8561 (diff) | |
| download | forums-01b41453812dc7b990f03b81f85dcfb9a18076fd.tar forums-01b41453812dc7b990f03b81f85dcfb9a18076fd.tar.gz forums-01b41453812dc7b990f03b81f85dcfb9a18076fd.tar.bz2 forums-01b41453812dc7b990f03b81f85dcfb9a18076fd.tar.xz forums-01b41453812dc7b990f03b81f85dcfb9a18076fd.zip | |
- fixed a few bugs
- added user_add() function
- check posted images ([img]) for same domain/scipt and php files
- auth_api.html updated to the coding guidelines look&feel
- introduced ability to force non page-updates (cron is using it)
- correctly resend coppa email
git-svn-id: file:///svn/phpbb/trunk@6048 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/ucp')
| -rw-r--r-- | phpBB/includes/ucp/ucp_activate.php | 76 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_attachments.php | 26 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_confirm.php | 9 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_main.php | 220 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_pm.php | 25 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_pm_options.php | 80 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_pm_viewfolder.php | 56 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_pm_viewmessage.php | 73 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_prefs.php | 294 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_profile.php | 2 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_register.php | 147 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_remind.php | 52 | ||||
| -rw-r--r-- | phpBB/includes/ucp/ucp_resend.php | 76 |
13 files changed, 499 insertions, 637 deletions
diff --git a/phpBB/includes/ucp/ucp_activate.php b/phpBB/includes/ucp/ucp_activate.php index f9f39f4663..87e6cb8169 100644 --- a/phpBB/includes/ucp/ucp_activate.php +++ b/phpBB/includes/ucp/ucp_activate.php @@ -15,9 +15,12 @@ */ class ucp_activate { + var $u_action; + function main($id, $mode) { - global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx; + global $config, $phpbb_root_path, $phpEx; + global $db, $user, $auth, $template; $user_id = request_var('u', 0); $key = request_var('k', ''); @@ -26,60 +29,64 @@ class ucp_activate FROM ' . USERS_TABLE . " WHERE user_id = $user_id"; $result = $db->sql_query($sql); - $row = $db->sql_fetchrow($result); + $user_row = $db->sql_fetchrow($result); $db->sql_freeresult($result); - if (!$row) + if (!$user_row) { - trigger_error($user->lang['NO_USER']); + trigger_error('NO_USER'); } - if ($row['user_type'] <> USER_INACTIVE && !$row['user_newpasswd']) + if ($user_row['user_type'] <> USER_INACTIVE && !$user_row['user_newpasswd']) { meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx")); - trigger_error($user->lang['ALREADY_ACTIVATED']); + trigger_error('ALREADY_ACTIVATED'); } - - if ($row['user_actkey'] != $key) + + if ($user_row['user_actkey'] != $key) { - trigger_error($user->lang['WRONG_ACTIVATION']); + trigger_error('WRONG_ACTIVATION'); } - $update_password = ($row['user_newpasswd']) ? true : false; + $update_password = ($user_row['user_newpasswd']) ? true : false; if ($update_password) { $sql_ary = array( 'user_type' => USER_NORMAL, 'user_actkey' => '', - 'user_password' => $row['user_newpasswd'], + 'user_password' => $user_row['user_newpasswd'], 'user_newpasswd' => '' ); - - $sql = 'UPDATE ' . USERS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' - WHERE user_id = ' . $row['user_id']; - $result = $db->sql_query($sql); + + $sql = 'UPDATE ' . USERS_TABLE . ' + SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' + WHERE user_id = ' . $user_row['user_id']; + $db->sql_query($sql); } - // TODO: check for group membership after password update... active_flip there too if (!$update_password) { + include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx); + // Now we need to demote the user from the inactive group and add him to the registered group + user_active_flip($user_row['user_id'], $user_row['user_type'], '', $user_row['username'], true); - include_once($phpbb_root_path . 'includes/functions_user.' . $phpEx); - user_active_flip($row['user_id'], $row['user_type'], '', $row['username'], true); + // Update last username + update_last_username(); + set_config('num_users', $config['num_users'] + 1, true); } if ($config['require_activation'] == USER_ACTIVATION_ADMIN && !$update_password) { - include_once($phpbb_root_path . 'includes/functions_messenger.'.$phpEx); + include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx); - $messenger = new messenger(); + $messenger = new messenger(false); - $messenger->template('admin_welcome_activated', $row['user_lang']); + $messenger->template('admin_welcome_activated', $user_row['user_lang']); $messenger->replyto($config['board_contact']); - $messenger->to($row['user_email'], $row['username']); + $messenger->to($user_row['user_email'], $user_row['username']); $messenger->headers('X-AntiAbuse: Board servername - ' . $config['server_name']); $messenger->headers('X-AntiAbuse: User_id - ' . $user->data['user_id']); @@ -88,13 +95,12 @@ class ucp_activate $messenger->assign_vars(array( 'SITENAME' => $config['sitename'], - 'USERNAME' => html_entity_decode($row['username']), + 'USERNAME' => html_entity_decode($user_row['username']), 'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $config['board_email_sig'])) ); - $messenger->send($row['user_notify_type']); - $messenger->save_queue(); + $messenger->send($user_row['user_notify_type']); $message = 'ACCOUNT_ACTIVE_ADMIN'; } @@ -103,26 +109,6 @@ class ucp_activate $message = (!$update_password) ? 'ACCOUNT_ACTIVE' : 'PASSWORD_ACTIVATED'; } - if (!$update_password) - { - // Get latest username - $sql = 'SELECT user_id, username - FROM ' . USERS_TABLE . ' - WHERE user_type IN (' . USER_NORMAL . ', ' . USER_FOUNDER . ') - ORDER BY user_id DESC'; - $result = $db->sql_query_limit($sql, 1); - $row = $db->sql_fetchrow($result); - $db->sql_freeresult($result); - - if ($row) - { - set_config('newest_user_id', $row['user_id'], true); - set_config('newest_username', $row['username'], true); - } - - set_config('num_users', $config['num_users'] + 1, true); - } - meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx")); trigger_error($user->lang[$message]); } diff --git a/phpBB/includes/ucp/ucp_attachments.php b/phpBB/includes/ucp/ucp_attachments.php index b699643f37..8582a92478 100644 --- a/phpBB/includes/ucp/ucp_attachments.php +++ b/phpBB/includes/ucp/ucp_attachments.php @@ -28,10 +28,12 @@ class ucp_attachments $delete = (isset($_POST['delete'])) ? true : false; $confirm = (isset($_POST['confirm'])) ? true : false; $delete_ids = isset($_REQUEST['attachment']) ? array_keys(array_map('intval', $_REQUEST['attachment'])) : array(); - + if ($delete && sizeof($delete_ids)) { - $s_hidden_fields = array('delete' => 1); + $s_hidden_fields = array( + 'delete' => 1 + ); foreach ($delete_ids as $attachment_id) { @@ -55,13 +57,13 @@ class ucp_attachments confirm_box(false, (sizeof($delete_ids) == 1) ? 'DELETE_ATTACHMENT' : 'DELETE_ATTACHMENTS', build_hidden_fields($s_hidden_fields)); } } - + // Select box eventually $sort_key_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']); $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) { @@ -77,20 +79,18 @@ class ucp_attachments } $order_by = $sort_key_sql[$sort_key] . ' ' . (($sort_dir == 'a') ? 'ASC' : 'DESC'); - + $sql = 'SELECT COUNT(attach_id) as num_attachments FROM ' . ATTACHMENTS_TABLE . ' WHERE poster_id = ' . $user->data['user_id']; - $result = $db->sql_query_limit($sql, 1); + $result = $db->sql_query($sql); $num_attachments = $db->sql_fetchfield('num_attachments'); $db->sql_freeresult($result); - + $sql = 'SELECT a.*, t.topic_title, p.message_subject as message_title FROM ' . ATTACHMENTS_TABLE . ' a - LEFT JOIN ' . TOPICS_TABLE . ' t ON (a.topic_id = t.topic_id - AND a.in_message = 0) - LEFT JOIN ' . PRIVMSGS_TABLE . ' p ON (a.post_msg_id = p.msg_id - AND a.in_message = 1) + LEFT JOIN ' . TOPICS_TABLE . ' t ON (a.topic_id = t.topic_id AND a.in_message = 0) + LEFT JOIN ' . PRIVMSGS_TABLE . ' p ON (a.post_msg_id = p.msg_id AND a.in_message = 1) WHERE a.poster_id = ' . $user->data['user_id'] . " ORDER BY $order_by"; $result = $db->sql_query_limit($sql, $config['posts_per_page'], $start); @@ -124,7 +124,7 @@ class ucp_attachments 'ATTACH_ID' => $row['attach_id'], 'POST_ID' => $row['post_msg_id'], 'TOPIC_ID' => $row['topic_id'], - + 'S_IN_MESSAGE' => $row['in_message'], 'U_VIEW_ATTACHMENT' => append_sid("{$phpbb_root_path}download.$phpEx", 'id=' . $row['attach_id']), @@ -146,7 +146,7 @@ class ucp_attachments 'U_SORT_FILENAME' => $this->u_action . "&sk=a&sd=" . (($sort_key == 'a' && $sort_dir == 'a') ? 'd' : 'a'), 'U_SORT_FILE_COMMENT' => $this->u_action . "&sk=b&sd=" . (($sort_key == 'b' && $sort_dir == 'a') ? 'd' : 'a'), - 'U_SORT_EXTENSION' => $this->u_action . "&i=$id&sk=c&sd=" . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a'), + 'U_SORT_EXTENSION' => $this->u_action . "&sk=c&sd=" . (($sort_key == 'c' && $sort_dir == 'a') ? 'd' : 'a'), 'U_SORT_FILESIZE' => $this->u_action . "&sk=d&sd=" . (($sort_key == 'd' && $sort_dir == 'a') ? 'd' : 'a'), 'U_SORT_DOWNLOADS' => $this->u_action . "&sk=e&sd=" . (($sort_key == 'e' && $sort_dir == 'a') ? 'd' : 'a'), 'U_SORT_POST_TIME' => $this->u_action . "&sk=f&sd=" . (($sort_key == 'f' && $sort_dir == 'a') ? 'd' : 'a'), diff --git a/phpBB/includes/ucp/ucp_confirm.php b/phpBB/includes/ucp/ucp_confirm.php index ec9b5c77d6..8729b3e854 100644 --- a/phpBB/includes/ucp/ucp_confirm.php +++ b/phpBB/includes/ucp/ucp_confirm.php @@ -22,6 +22,8 @@ */ class ucp_confirm { + var $u_action; + function main($id, $mode) { global $db, $user, $phpbb_root_path, $config, $phpEx; @@ -56,11 +58,7 @@ class ucp_confirm if (function_exists('imagettfbbox') && function_exists('imagettftext')) { - $policy_modules[] = 'policy_overlap'; - $policy_modules[] = 'policy_shape'; - $policy_modules[] = 'policy_cells'; - $policy_modules[] = 'policy_stencil'; - $policy_modules[] = 'policy_composite'; + $policy_modules += array('policy_overlap', 'policy_shape', 'policy_cells', 'policy_stencil', 'policy_composite'); } foreach ($policy_modules as $key => $name) @@ -87,4 +85,5 @@ class ucp_confirm exit; } } + ?>
\ No newline at end of file diff --git a/phpBB/includes/ucp/ucp_main.php b/phpBB/includes/ucp/ucp_main.php index 70f0e20f60..a0eec4b5ad 100644 --- a/phpBB/includes/ucp/ucp_main.php +++ b/phpBB/includes/ucp/ucp_main.php @@ -62,7 +62,7 @@ class ucp_main $sql = 'SELECT forum_id FROM ' . FORUMS_TABLE . ' WHERE forum_type = ' . FORUM_POST; - + if (sizeof($forum_ary)) { $sql .= ' AND forum_id NOT IN ( ' . implode(', ', $forum_ary) . ')'; @@ -122,26 +122,26 @@ class ucp_main } $template->assign_block_vars('topicrow', array( - 'FORUM_ID' => $forum_id, - 'TOPIC_ID' => $topic_id, + 'FORUM_ID' => $forum_id, + 'TOPIC_ID' => $topic_id, 'LAST_POST_TIME' => $user->format_date($row['topic_last_post_time']), - 'LAST_POST_AUTHOR' => ($row['topic_last_poster_id'] == ANONYMOUS) ? (($row['topic_last_poster_name'] != '') ? $row['topic_last_poster_name'] . ' ' : $user->lang['GUEST'] . ' ') : $row['topic_last_poster_name'], - 'TOPIC_TITLE' => censor_text($row['topic_title']), - 'TOPIC_TYPE' => $topic_type, + 'LAST_POST_AUTHOR' => ($row['topic_last_poster_id'] == ANONYMOUS) ? (($row['topic_last_poster_name'] != '') ? $row['topic_last_poster_name'] . ' ' : $user->lang['GUEST'] . ' ') : $row['topic_last_poster_name'], + 'TOPIC_TITLE' => censor_text($row['topic_title']), + 'TOPIC_TYPE' => $topic_type, - 'LAST_POST_IMG' => $user->img('icon_post_latest', 'VIEW_LATEST_POST'), - 'NEWEST_POST_IMG' => $user->img('icon_post_newest', 'VIEW_NEWEST_POST'), - 'TOPIC_FOLDER_IMG' => $user->img($folder_img, $folder_alt), - 'TOPIC_FOLDER_IMG_SRC' => $user->img($folder_img, $folder_alt, false, '', 'src'), - 'ATTACH_ICON_IMG' => ($auth->acl_gets('f_download', 'u_download', $forum_id) && $row['topic_attachment']) ? $user->img('icon_attach', '') : '', + 'LAST_POST_IMG' => $user->img('icon_post_latest', 'VIEW_LATEST_POST'), + 'NEWEST_POST_IMG' => $user->img('icon_post_newest', 'VIEW_NEWEST_POST'), + 'TOPIC_FOLDER_IMG' => $user->img($folder_img, $folder_alt), + 'TOPIC_FOLDER_IMG_SRC' => $user->img($folder_img, $folder_alt, false, '', 'src'), + 'ATTACH_ICON_IMG' => ($auth->acl_gets('f_download', 'u_download', $forum_id) && $row['topic_attachment']) ? $user->img('icon_attach', '') : '', 'S_USER_POSTED' => (!empty($row['topic_posted']) && $row['topic_posted']) ? true : false, 'S_UNREAD' => $unread_topic, - 'U_LAST_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$g_forum_id&t=$topic_id&p=" . $row['topic_last_post_id']) . '#p' . $row['topic_last_post_id'], - 'U_LAST_POST_AUTHOR'=> ($row['topic_last_poster_id'] != ANONYMOUS) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $row['topic_last_poster_id']) : '', - 'U_NEWEST_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$g_forum_id&t=$topic_id&view=unread") . '#unread', - 'U_VIEW_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$g_forum_id&t=$topic_id")) + 'U_LAST_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$g_forum_id&t=$topic_id&p=" . $row['topic_last_post_id']) . '#p' . $row['topic_last_post_id'], + 'U_LAST_POST_AUTHOR' => ($row['topic_last_poster_id'] != ANONYMOUS) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $row['topic_last_poster_id']) : '', + 'U_NEWEST_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$g_forum_id&t=$topic_id&view=unread") . '#unread', + 'U_VIEW_TOPIC' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$g_forum_id&t=$topic_id")) ); } @@ -174,10 +174,9 @@ class ucp_main // 'S_GROUP_OPTIONS' => $group_options, 'S_SHOW_ACTIVITY' => ($config['load_user_activity']) ? true : false, - 'U_SEARCH_USER' => ($auth->acl_get('u_search')) ? append_sid("{$phpbb_root_path}search.$phpEx", 'author_id=' . $user->data['user_id'] . '&sr=posts') : '', - ) + 'U_SEARCH_USER' => ($auth->acl_get('u_search')) ? append_sid("{$phpbb_root_path}search.$phpEx", 'author_id=' . $user->data['user_id'] . '&sr=posts') : '') ); - break; + break; case 'subscribed': @@ -185,7 +184,7 @@ class ucp_main $user->add_lang('viewforum'); $unwatch = (isset($_POST['unwatch'])) ? true : false; - + if ($unwatch) { $forums = (isset($_POST['f'])) ? implode(', ', array_map('intval', array_keys($_POST['f']))) : false; @@ -198,7 +197,7 @@ class ucp_main { $sql = 'DELETE FROM ' . FORUMS_WATCH_TABLE . " WHERE forum_id IN ($forums) - AND user_id = " .$user->data['user_id']; + AND user_id = " . $user->data['user_id']; $db->sql_query($sql); $l_unwatch .= '_FORUMS'; @@ -208,7 +207,7 @@ class ucp_main { $sql = 'DELETE FROM ' . TOPICS_WATCH_TABLE . " WHERE topic_id IN ($topics) - AND user_id = " .$user->data['user_id']; + AND user_id = " . $user->data['user_id']; $db->sql_query($sql); $l_unwatch .= '_TOPICS'; @@ -229,8 +228,8 @@ class ucp_main FORUMS_TABLE => 'f' ), - 'WHERE' => "fw.user_id = " . $user->data['user_id'] . ' - AND f.forum_id = fw.forum_id', + 'WHERE' => 'fw.user_id = ' . $user->data['user_id'] . ' + AND f.forum_id = fw.forum_id', 'ORDER_BY' => 'left_id' ); @@ -243,6 +242,7 @@ class ucp_main 'ON' => 'ft.user_id = ' . $user->data['user_id'] . ' AND ft.forum_id = f.forum_id' ) ); + $sql_array['SELECT'] .= ', ft.mark_time '; } else @@ -297,22 +297,21 @@ class ucp_main } $template->assign_block_vars('forumrow', array( - 'FORUM_ID' => $forum_id, - 'FORUM_FOLDER_IMG' => $user->img($folder_image, $folder_alt), + 'FORUM_ID' => $forum_id, + 'FORUM_FOLDER_IMG' => $user->img($folder_image, $folder_alt), 'FORUM_FOLDER_IMG_SRC' => $user->img($folder_image, $folder_alt, false, '', 'src'), - 'FORUM_NAME' => $row['forum_name'], - 'LAST_POST_IMG' => $user->img('icon_post_latest', 'VIEW_LATEST_POST'), - 'LAST_POST_TIME' => $last_post_time, - 'LAST_POST_AUTHOR' => $last_poster, - - 'U_LAST_POST_AUTHOR'=> $last_poster_url, - 'U_LAST_POST' => $last_post_url, - 'U_VIEWFORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id'])) + 'FORUM_NAME' => $row['forum_name'], + 'LAST_POST_IMG' => $user->img('icon_post_latest', 'VIEW_LATEST_POST'), + 'LAST_POST_TIME' => $last_post_time, + 'LAST_POST_AUTHOR' => $last_poster, + + 'U_LAST_POST_AUTHOR' => $last_poster_url, + 'U_LAST_POST' => $last_post_url, + 'U_VIEWFORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $row['forum_id'])) ); } $db->sql_freeresult($result); - // Subscribed Topics $start = request_var('start', 0); @@ -331,7 +330,7 @@ class ucp_main 'TOTAL_TOPICS' => ($topics_count == 1) ? $user->lang['VIEW_FORUM_TOPIC'] : sprintf($user->lang['VIEW_FORUM_TOPICS'], $topics_count)) ); } - + $sql_array = array( 'SELECT' => 't.*', @@ -340,8 +339,8 @@ class ucp_main TOPICS_TABLE => 't' ), - 'WHERE' => "tw.user_id = " . $user->data['user_id'] . ' - AND t.topic_id = tw.topic_id', + 'WHERE' => 'tw.user_id = ' . $user->data['user_id'] . ' + AND t.topic_id = tw.topic_id', 'ORDER_BY' => 't.topic_last_post_time DESC' ); @@ -419,44 +418,43 @@ class ucp_main // Send vars to template $template->assign_block_vars('topicrow', array( - 'FORUM_ID' => $forum_id, - 'TOPIC_ID' => $topic_id, - 'TOPIC_AUTHOR' => topic_topic_author($row), - 'FIRST_POST_TIME' => $user->format_date($row['topic_time']), + 'FORUM_ID' => $forum_id, + 'TOPIC_ID' => $topic_id, + 'TOPIC_AUTHOR' => topic_topic_author($row), + 'FIRST_POST_TIME' => $user->format_date($row['topic_time']), 'LAST_POST_TIME' => $user->format_date($row['topic_last_post_time']), 'LAST_VIEW_TIME' => $user->format_date($row['topic_last_view_time']), - 'LAST_POST_AUTHOR' => ($row['topic_last_poster_name'] != '') ? $row['topic_last_poster_name'] : $user->lang['GUEST'], - 'PAGINATION' => topic_generate_pagination($replies, append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($row['forum_id']) ? $row['forum_id'] : $forum_id) . "&t=$topic_id")), - 'REPLIES' => $replies, - 'VIEWS' => $row['topic_views'], - 'TOPIC_TITLE' => censor_text($row['topic_title']), - 'TOPIC_TYPE' => $topic_type, - - 'LAST_POST_IMG' => $user->img('icon_post_latest', 'VIEW_LATEST_POST'), - 'NEWEST_POST_IMG' => $user->img('icon_post_newest', 'VIEW_NEWEST_POST'), - 'TOPIC_FOLDER_IMG' => $user->img($folder_img, $folder_alt), - 'TOPIC_FOLDER_IMG_SRC' => $user->img($folder_img, $folder_alt, false, '', 'src'), - 'TOPIC_ICON_IMG' => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['img'] : '', + 'LAST_POST_AUTHOR' => ($row['topic_last_poster_name'] != '') ? $row['topic_last_poster_name'] : $user->lang['GUEST'], + 'PAGINATION' => topic_generate_pagination($replies, append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($row['forum_id']) ? $row['forum_id'] : $forum_id) . "&t=$topic_id")), + 'REPLIES' => $replies, + 'VIEWS' => $row['topic_views'], + 'TOPIC_TITLE' => censor_text($row['topic_title']), + 'TOPIC_TYPE' => $topic_type, + + 'LAST_POST_IMG' => $user->img('icon_post_latest', 'VIEW_LATEST_POST'), + 'NEWEST_POST_IMG' => $user->img('icon_post_newest', 'VIEW_NEWEST_POST'), + 'TOPIC_FOLDER_IMG' => $user->img($folder_img, $folder_alt), + 'TOPIC_FOLDER_IMG_SRC' => $user->img($folder_img, $folder_alt, false, '', 'src'), + 'TOPIC_ICON_IMG' => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['img'] : '', 'TOPIC_ICON_IMG_WIDTH' => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['width'] : '', 'TOPIC_ICON_IMG_HEIGHT' => (!empty($icons[$row['icon_id']])) ? $icons[$row['icon_id']]['height'] : '', - 'ATTACH_ICON_IMG' => ($auth->acl_gets('f_download', 'u_download', $forum_id) && $row['topic_attachment']) ? $user->img('icon_attach', $user->lang['TOTAL_ATTACHMENTS']) : '', + 'ATTACH_ICON_IMG' => ($auth->acl_gets('f_download', 'u_download', $forum_id) && $row['topic_attachment']) ? $user->img('icon_attach', $user->lang['TOTAL_ATTACHMENTS']) : '', 'S_TOPIC_TYPE' => $row['topic_type'], 'S_USER_POSTED' => (!empty($row['topic_posted'])) ? true : false, 'S_UNREAD_TOPIC' => $unread_topic, - 'U_NEWEST_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id&view=unread") . '#unread', - 'U_LAST_POST' => $view_topic_url . '&p=' . $row['topic_last_post_id'] . '#p' . $row['topic_last_post_id'], - 'U_LAST_POST_AUTHOR'=> ($row['topic_last_poster_id'] != ANONYMOUS && $row['topic_last_poster_id']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $row['topic_last_poster_id']) : '', - 'U_VIEW_TOPIC' => $view_topic_url) + 'U_NEWEST_POST' => append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id&view=unread") . '#unread', + 'U_LAST_POST' => $view_topic_url . '&p=' . $row['topic_last_post_id'] . '#p' . $row['topic_last_post_id'], + 'U_LAST_POST_AUTHOR' => ($row['topic_last_poster_id'] != ANONYMOUS && $row['topic_last_poster_id']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $row['topic_last_poster_id']) : '', + 'U_VIEW_TOPIC' => $view_topic_url) ); - } - break; + break; case 'bookmarks': - + if (!$config['allow_bookmarks']) { $template->assign_vars(array( @@ -492,21 +490,21 @@ class ucp_main $db->sql_query($sql); } } - + if (isset($_POST['unbookmark'])) { - $s_hidden_fields = '<input type="hidden" name="unbookmark" value="1" />'; + $s_hidden_fields = array('unbookmark' => 1); $topics = (isset($_POST['t'])) ? array_map('intval', array_keys($_POST['t'])) : array(); $url = $this->u_action; - + if (!sizeof($topics)) { trigger_error('NO_BOOKMARKS_SELECTED'); } - + foreach ($topics as $topic_id) { - $s_hidden_fields .= '<input type="hidden" name="t[' . $topic_id . ']" value="1" />'; + $s_hidden_fields['t'][$topic_id] = 1; } if (confirm_box(true)) @@ -525,10 +523,12 @@ class ucp_main $i = 1; while ($row = $db->sql_fetchrow($result)) { - $db->sql_query('UPDATE ' . BOOKMARKS_TABLE . " + $sql = 'UPDATE ' . BOOKMARKS_TABLE . " SET order_id = $i WHERE topic_id = {$row['topic_id']} - AND user_id = {$user->data['user_id']}"); + AND user_id = {$user->data['user_id']}"; + $db->sql_query($sql); + $i++; } $db->sql_freeresult($result); @@ -539,7 +539,7 @@ class ucp_main } else { - confirm_box(false, 'REMOVE_SELECTED_BOOKMARKS', $s_hidden_fields); + confirm_box(false, 'REMOVE_SELECTED_BOOKMARKS', build_hidden_fields($s_hidden_fields)); } } @@ -553,67 +553,67 @@ class ucp_main WHERE b.user_id = ' . $user->data['user_id'] . ' ORDER BY b.order_id ASC'; $result = $db->sql_query($sql); - + while ($row = $db->sql_fetchrow($result)) { $forum_id = $row['forum_id']; $topic_id = $row['b_topic_id']; - + $replies = ($auth->acl_get('m_approve', $forum_id)) ? $row['topic_replies_real'] : $row['topic_replies']; - + // Get folder img, topic status/type related informations $folder_img = $folder_alt = $topic_type = ''; $unread_topic = false; - + topic_status($row, $replies, $unread_topic, $folder_img, $folder_alt, $topic_type); $view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", "f=$forum_id&t=$topic_id"); - + $template->assign_block_vars('topicrow', array( - 'FORUM_ID' => $forum_id, - 'TOPIC_ID' => $topic_id, - 'TOPIC_TITLE' => censor_text($row['topic_title']), - 'TOPIC_TYPE' => $topic_type, + 'FORUM_ID' => $forum_id, + 'TOPIC_ID' => $topic_id, + 'TOPIC_TITLE' => censor_text($row['topic_title']), + 'TOPIC_TYPE' => $topic_type, 'FORUM_NAME' => $row['forum_name'], 'S_DELETED_TOPIC' => (!$row['topic_id']) ? true : false, 'S_GLOBAL_TOPIC' => (!$forum_id) ? true : false, - 'TOPIC_AUTHOR' => topic_topic_author($row), - 'FIRST_POST_TIME' => $user->format_date($row['topic_time']), + 'TOPIC_AUTHOR' => topic_topic_author($row), + 'FIRST_POST_TIME' => $user->format_date($row['topic_time']), 'LAST_POST_TIME' => $user->format_date($row['topic_last_post_time']), 'LAST_VIEW_TIME' => $user->format_date($row['topic_last_view_time']), - 'LAST_POST_AUTHOR' => ($row['topic_last_poster_name'] != '') ? $row['topic_last_poster_name'] : $user->lang['GUEST'], - 'PAGINATION' => topic_generate_pagination($replies, append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($row['forum_id']) ? $row['forum_id'] : $forum_id) . "&t=$topic_id")), + 'LAST_POST_AUTHOR' => ($row['topic_last_poster_name'] != '') ? $row['topic_last_poster_name'] : $user->lang['GUEST'], + 'PAGINATION' => topic_generate_pagination($replies, append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . (($row['forum_id']) ? $row['forum_id'] : $forum_id) . "&t=$topic_id")), 'POSTED_AT' => $user->format_date($row['topic_time']), - - 'TOPIC_FOLDER_IMG' => $user->img($folder_img, $folder_alt), - 'TOPIC_FOLDER_IMG_SRC' => $user->img($folder_img, $folder_alt, false, '', 'src'), - 'ATTACH_ICON_IMG' => ($auth->acl_gets('f_download', 'u_download', $forum_id) && $row['topic_attachment']) ? $user->img('icon_attach', '') : '', - 'LAST_POST_IMG' => $user->img('icon_post_latest', 'VIEW_LATEST_POST'), - - 'U_LAST_POST' => $view_topic_url . '&p=' . $row['topic_last_post_id'] . '#p' . $row['topic_last_post_id'], - 'U_LAST_POST_AUTHOR'=> ($row['topic_last_poster_id'] != ANONYMOUS && $row['topic_last_poster_id']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $row['topic_last_poster_id']) : '', - 'U_VIEW_TOPIC' => $view_topic_url, - 'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id), - 'U_MOVE_UP' => ($row['order_id'] != 1) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=main&mode=bookmarks&move_up=' . $row['order_id']) : '', - 'U_MOVE_DOWN' => ($row['order_id'] != $max_order_id) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=main&mode=bookmarks&move_down=' . $row['order_id']) : '') + + 'TOPIC_FOLDER_IMG' => $user->img($folder_img, $folder_alt), + 'TOPIC_FOLDER_IMG_SRC' => $user->img($folder_img, $folder_alt, false, '', 'src'), + 'ATTACH_ICON_IMG' => ($auth->acl_gets('f_download', 'u_download', $forum_id) && $row['topic_attachment']) ? $user->img('icon_attach', '') : '', + 'LAST_POST_IMG' => $user->img('icon_post_latest', 'VIEW_LATEST_POST'), + + 'U_LAST_POST' => $view_topic_url . '&p=' . $row['topic_last_post_id'] . '#p' . $row['topic_last_post_id'], + 'U_LAST_POST_AUTHOR' => ($row['topic_last_poster_id'] != ANONYMOUS && $row['topic_last_poster_id']) ? append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $row['topic_last_poster_id']) : '', + 'U_VIEW_TOPIC' => $view_topic_url, + 'U_VIEW_FORUM' => append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_id), + 'U_MOVE_UP' => ($row['order_id'] != 1) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=main&mode=bookmarks&move_up=' . $row['order_id']) : '', + 'U_MOVE_DOWN' => ($row['order_id'] != $max_order_id) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=main&mode=bookmarks&move_down=' . $row['order_id']) : '') ); } - break; + break; case 'drafts': - + $pm_drafts = ($this->p_master->p_name == 'pm') ? true : false; $template->assign_var('S_SHOW_DRAFTS', true); $user->add_lang('posting'); - $edit = (isset($_REQUEST['edit'])) ? true : false; - $submit = (isset($_POST['submit'])) ? true : false; - $draft_id = ($edit) ? intval($_REQUEST['edit']) : 0; - $delete = (isset($_POST['delete'])) ? true : false; + $edit = (isset($_REQUEST['edit'])) ? true : false; + $submit = (isset($_POST['submit'])) ? true : false; + $draft_id = ($edit) ? intval($_REQUEST['edit']) : 0; + $delete = (isset($_POST['delete'])) ? true : false; $s_hidden_fields = ($edit) ? '<input type="hidden" name="edit" value="' . $draft_id . '" />' : ''; $draft_subject = $draft_message = ''; @@ -672,7 +672,7 @@ class ucp_main WHERE d.user_id = ' . $user->data['user_id'] . ' ' . (($edit) ? "AND d.draft_id = $draft_id" : '') . ' AND f.forum_id = d.forum_id - ORDER BY d.save_time DESC'; + ORDER BY d.save_time DESC'; } else { @@ -681,10 +681,10 @@ class ucp_main (($edit) ? "AND draft_id = $draft_id" : '') . ' AND forum_id = 0 AND topic_id = 0 - ORDER BY save_time DESC'; + ORDER BY save_time DESC'; } $result = $db->sql_query($sql); - + $draftrows = $topic_ids = array(); while ($row = $db->sql_fetchrow($result)) @@ -696,7 +696,7 @@ class ucp_main $draftrows[] = $row; } $db->sql_freeresult($result); - + if (sizeof($topic_ids)) { $sql = 'SELECT topic_id, forum_id, topic_title @@ -711,7 +711,7 @@ class ucp_main $db->sql_freeresult($result); } unset($topic_ids); - + $template->assign_var('S_EDIT_DRAFT', $edit); $row_count = 0; @@ -741,7 +741,7 @@ class ucp_main $link_pm = true; $insert_url = append_sid("{$phpbb_root_path}ucp.$phpEx", "i=$id&mode=compose&d=" . $draft['draft_id']); } - + $template_row = array( 'DATE' => $user->format_date($draft['save_time']), 'DRAFT_MESSAGE' => ($submit) ? $draft_message : $draft['draft_message'], @@ -762,7 +762,7 @@ class ucp_main 'S_HIDDEN_FIELDS' => $s_hidden_fields ); $row_count++; - + ($edit) ? $template->assign_vars($template_row) : $template->assign_block_vars('draftrow', $template_row); } @@ -778,9 +778,9 @@ class ucp_main $template->assign_vars(array( 'L_TITLE' => $user->lang['UCP_MAIN_' . strtoupper($mode)], - 'S_DISPLAY_MARK_ALL'=> ($mode == 'watched' || ($mode == 'drafts' && !isset($_GET['edit']))) ? true : false, - 'S_HIDDEN_FIELDS' => (isset($s_hidden_fields)) ? $s_hidden_fields : '', - 'S_UCP_ACTION' => $this->u_action) + 'S_DISPLAY_MARK_ALL' => ($mode == 'watched' || ($mode == 'drafts' && !isset($_GET['edit']))) ? true : false, + 'S_HIDDEN_FIELDS' => (isset($s_hidden_fields)) ? $s_hidden_fields : '', + 'S_UCP_ACTION' => $this->u_action) ); // Set desired template diff --git a/phpBB/includes/ucp/ucp_pm.php b/phpBB/includes/ucp/ucp_pm.php index 18ca027582..b2dd23b9d8 100644 --- a/phpBB/includes/ucp/ucp_pm.php +++ b/phpBB/includes/ucp/ucp_pm.php @@ -38,7 +38,7 @@ class ucp_pm function main($id, $mode) { global $user, $template, $phpbb_root_path, $auth, $phpEx, $db, $config; - + if (!$user->data['is_registered']) { trigger_error('NO_MESSAGE'); @@ -101,7 +101,7 @@ class ucp_pm 'U_INBOX' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&folder=inbox'), 'UA_INBOX' => append_sid("{$phpbb_root_path}ucp.$phpEx", 'i=pm&folder=inbox', false)) ); - + $tpl_file = 'ucp_pm_popup'; break; @@ -116,7 +116,7 @@ class ucp_pm trigger_error('NO_AUTH_SEND_MESSAGE'); } - include($phpbb_root_path . 'includes/ucp/ucp_pm_compose.'.$phpEx); + include($phpbb_root_path . 'includes/ucp/ucp_pm_compose.' . $phpEx); compose_pm($id, $mode, $action); $tpl_file = 'posting_body'; @@ -134,7 +134,7 @@ class ucp_pm get_folder($user->data['user_id']); - include($phpbb_root_path . 'includes/ucp/ucp_pm_options.'.$phpEx); + include($phpbb_root_path . 'includes/ucp/ucp_pm_options.' . $phpEx); message_options($id, $mode, $global_privmsgs_rules, $global_rule_conditions); $tpl_file = 'ucp_pm_options'; @@ -144,21 +144,21 @@ class ucp_pm get_folder($user->data['user_id']); $this->p_name = 'pm'; - + // Call another module... please do not try this at home... Hoochie Coochie Man - include($phpbb_root_path . 'includes/ucp/ucp_main.'.$phpEx); + include($phpbb_root_path . 'includes/ucp/ucp_main.' . $phpEx); $module = new ucp_main($this); $module->main($id, $mode); $this->tpl_name = $module->tpl_name; - + unset($module); return; break; case 'view': - + $sql = 'SELECT group_message_limit FROM ' . GROUPS_TABLE . ' WHERE group_id = ' . $user->data['group_id']; @@ -203,8 +203,8 @@ class ucp_pm // First Handle Mark actions and moving messages $submit_mark = (isset($_POST['submit_mark'])) ? true : false; $move_pm = (isset($_POST['move_pm'])) ? true : false; - $mark_option = request_var('mark_option', ''); - $dest_folder = request_var('dest_folder', PRIVMSGS_NO_BOX); + $mark_option = request_var('mark_option', ''); + $dest_folder = request_var('dest_folder', PRIVMSGS_NO_BOX); // Is moving PM triggered through mark options? if (!in_array($mark_option, array('mark_important', 'delete_marked')) && $submit_mark) @@ -364,7 +364,7 @@ class ucp_pm if ($action == 'view_folder') { - include($phpbb_root_path . 'includes/ucp/ucp_pm_viewfolder.'.$phpEx); + include($phpbb_root_path . 'includes/ucp/ucp_pm_viewfolder.' . $phpEx); view_folder($id, $mode, $folder_id, $folder); $tpl_file = 'ucp_pm_viewfolder'; @@ -381,7 +381,7 @@ class ucp_pm trigger_error('NO_MESSAGE'); } - include($phpbb_root_path . 'includes/ucp/ucp_pm_viewmessage.'.$phpEx); + include($phpbb_root_path . 'includes/ucp/ucp_pm_viewmessage.' . $phpEx); view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row); $tpl_file = ($view == 'print') ? 'ucp_pm_viewmessage_print' : 'ucp_pm_viewmessage'; @@ -391,6 +391,7 @@ class ucp_pm default: trigger_error('NO_ACTION_MODE'); + break; } $template->assign_vars(array( diff --git a/phpBB/includes/ucp/ucp_pm_options.php b/phpBB/includes/ucp/ucp_pm_options.php index 6b6542f498..3362b5d9b4 100644 --- a/phpBB/includes/ucp/ucp_pm_options.php +++ b/phpBB/includes/ucp/ucp_pm_options.php @@ -27,15 +27,19 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit { case 1: $set_folder_id = FULL_FOLDER_DELETE; - break; + break; + case 2: $set_folder_id = request_var('full_move_to', PRIVMSGS_INBOX); - break; + break; + case 3: $set_folder_id = FULL_FOLDER_HOLD; - break; + break; + default: $full_action = 0; + break; } if ($full_action) @@ -46,7 +50,7 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit $db->sql_query($sql); $user->data['user_full_folder'] = $set_folder_id; - + $message = $user->lang['FULL_FOLDER_OPTION_CHANGED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $redirect_url . '">', '</a>'); meta_refresh(3, $redirect_url); trigger_error($message); @@ -65,12 +69,13 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit WHERE folder_name = '" . $db->sql_escape($folder_name) . "' AND user_id = " . $user->data['user_id']; $result = $db->sql_query_limit($sql, 1); + $row = $db->sql_fetchrow($result); + $db->sql_freeresult($result); - if ($db->sql_fetchrow($result)) + if ($row) { trigger_error(sprintf($user->lang['FOLDER_NAME_EXIST'], $folder_name)); } - $db->sql_freeresult($result); $sql = 'SELECT COUNT(folder_id) as num_folder FROM ' . PRIVMSGS_FOLDER_TABLE . ' @@ -85,7 +90,9 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit } $sql = 'INSERT INTO ' . PRIVMSGS_FOLDER_TABLE . ' ' . $db->sql_build_array('INSERT', array( - 'user_id' => (int) $user->data['user_id'], 'folder_name' => $folder_name)); + 'user_id' => (int) $user->data['user_id'], + 'folder_name' => $folder_name) + ); $db->sql_query($sql); $message = $user->lang['FOLDER_ADDED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $redirect_url . '">', '</a>'); @@ -93,7 +100,7 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit trigger_error($message); } } - + // Rename folder if (isset($_POST['rename_folder'])) { @@ -144,7 +151,7 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit { trigger_error('CANNOT_MOVE_TO_SAME_FOLDER'); } - + // Select custom folder $sql = 'SELECT folder_name, pm_count FROM ' . PRIVMSGS_FOLDER_TABLE . " @@ -195,12 +202,12 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit { trigger_error(sprintf($user->lang['MOVE_PM_ERROR'], $num_moved, $folder_row['pm_count'])); } - break; + break; // Remove Messages case 2: delete_pm($user->data['user_id'], $msg_ids, $remove_folder_id); - break; + break; } // Remove folder @@ -256,7 +263,7 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit { trigger_error('RULE_NOT_DEFINED'); } - + $rule_ary = array( 'user_id' => $user->data['user_id'], 'rule_check' => $check_option, @@ -272,20 +279,23 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit FROM ' . PRIVMSGS_RULES_TABLE . ' WHERE ' . $db->sql_build_array('SELECT', $rule_ary); $result = $db->sql_query($sql); + $row = $db->sql_fetchrow($result); + $db->sql_freeresult($result); - if ($db->sql_fetchrow($result)) + if ($row) { trigger_error('RULE_ALREADY_DEFINED'); } - $db->sql_freeresult($result); - + $sql = 'INSERT INTO ' . PRIVMSGS_RULES_TABLE . ' ' . $db->sql_build_array('INSERT', $rule_ary); $db->sql_query($sql); // Update users message rules - $sql = 'UPDATE ' . USERS_TABLE . ' SET user_message_rules = 1 WHERE user_id = ' . $user->data['user_id']; + $sql = 'UPDATE ' . USERS_TABLE . ' + SET user_message_rules = 1 + WHERE user_id = ' . $user->data['user_id']; $db->sql_query($sql); - + $message = $user->lang['RULE_ADDED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $redirect_url . '">', '</a>'); meta_refresh(3, $redirect_url); trigger_error($message); @@ -322,9 +332,11 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit $db->sql_freeresult($result); // Update users message rules - if ($row) + if (!$row) { - $sql = 'UPDATE ' . USERS_TABLE . ' SET user_message_rules = 0 WHERE user_id = ' . $user->data['user_id']; + $sql = 'UPDATE ' . USERS_TABLE . ' + SET user_message_rules = 0 + WHERE user_id = ' . $user->data['user_id']; $db->sql_query($sql); } @@ -337,7 +349,7 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit confirm_box(false, 'DELETE_RULE', build_hidden_fields(array('delete_rule' => array($delete_id => 1)))); } } - + $folder = array(); $sql = 'SELECT COUNT(msg_id) as num_messages @@ -349,8 +361,8 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit $db->sql_freeresult($result); $folder[PRIVMSGS_INBOX] = array( - 'folder_name' => $user->lang['PM_INBOX'], - 'message_status'=> sprintf($user->lang['FOLDER_MESSAGE_STATUS'], $num_messages, $user->data['message_limit']) + 'folder_name' => $user->lang['PM_INBOX'], + 'message_status' => sprintf($user->lang['FOLDER_MESSAGE_STATUS'], $num_messages, $user->data['message_limit']) ); $sql = 'SELECT folder_id, folder_name, pm_count @@ -363,8 +375,8 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit { $num_user_folder++; $folder[$row['folder_id']] = array( - 'folder_name' => $row['folder_name'], - 'message_status'=> sprintf($user->lang['FOLDER_MESSAGE_STATUS'], $row['pm_count'], $user->data['message_limit']) + 'folder_name' => $row['folder_name'], + 'message_status' => sprintf($user->lang['FOLDER_MESSAGE_STATUS'], $row['pm_count'], $user->data['message_limit']) ); } $db->sql_freeresult($result); @@ -385,7 +397,7 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit { $s_full_folder_options .= '<option value="' . $folder_id . '"' . (($user->data['user_full_folder'] == $folder_id) ? ' selected="selected"' : '') . '>' . $folder_ary['folder_name'] . ' (' . $folder_ary['message_status'] . ')</option>'; $s_to_folder_options .= '<option value="' . $folder_id . '"' . (($to_folder_id == $folder_id) ? ' selected="selected"' : '') . '>' . $folder_ary['folder_name'] . ' (' . $folder_ary['message_status'] . ')</option>'; - + if ($folder_id != PRIVMSGS_INBOX) { $s_folder_options .= '<option value="' . $folder_id . '">' . $folder_ary['folder_name'] . ' (' . $folder_ary['message_status'] . ')</option>'; @@ -402,11 +414,11 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit { case 1: $s_delete_checked = ' checked="checked"'; - break; + break; case 2: $s_hold_checked = ' checked="checked"'; - break; + break; } } @@ -420,7 +432,7 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit 'S_MAX_FOLDER_REACHED' => ($num_user_folder >= $config['pm_max_boxes']) ? true : false, 'DEFAULT_ACTION' => ($config['full_folder_action'] == 1) ? $user->lang['DELETE_OLDEST_MESSAGES'] : $user->lang['HOLD_NEW_MESSAGES'], - + 'U_FIND_USERNAME' => append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=searchuser&form=ucp&field=rule_string')) ); @@ -490,7 +502,7 @@ function message_options($id, $mode, $global_privmsgs_rules, $global_rule_condit { define_action_option(false, $action_option, $action_lang, $folder); } - + show_defined_rules($user->data['user_id'], $check_lang, $rule_lang, $action_lang, $folder); } @@ -612,7 +624,7 @@ function define_cond_option($hardcoded, $cond_option, $rule_option, $global_rule ); return; } - + // Define Condition $condition = $global_rule_conditions[$rule_option]; $current_value = ''; @@ -630,7 +642,7 @@ function define_cond_option($hardcoded, $cond_option, $rule_option, $global_rule ); $current_value = $rule_string; - break; + break; case 'user': $rule_user_id = request_var('rule_user_id', 0); @@ -640,7 +652,7 @@ function define_cond_option($hardcoded, $cond_option, $rule_option, $global_rule { $sql = 'SELECT user_id FROM ' . USERS_TABLE . " - WHERE username = '" . $db->sql_escape($rule_string) . "'"; + WHERE LOWER(username) = '" . $db->sql_escape(strtolower($rule_string)) . "'"; $result = $db->sql_query($sql); $rule_user_id = (int) $db->sql_fetchfield('user_id'); $db->sql_freeresult($result); @@ -673,7 +685,7 @@ function define_cond_option($hardcoded, $cond_option, $rule_option, $global_rule ); $current_value = $rule_string; - break; + break; case 'group': $rule_group_id = request_var('rule_group_id', 0); @@ -708,7 +720,7 @@ function define_cond_option($hardcoded, $cond_option, $rule_option, $global_rule ); $current_value = $rule_string; - break; + break; default: return; diff --git a/phpBB/includes/ucp/ucp_pm_viewfolder.php b/phpBB/includes/ucp/ucp_pm_viewfolder.php index b3421a203d..30dc8a8b09 100644 --- a/phpBB/includes/ucp/ucp_pm_viewfolder.php +++ b/phpBB/includes/ucp/ucp_pm_viewfolder.php @@ -35,7 +35,7 @@ function view_folder($id, $mode, $folder_id, $folder) { $template->assign_block_vars('pm_colour_info', array( 'IMG' => $user->img("pm_{$var}", ''), - 'CLASS' => "pm_{$var}_colour", + 'CLASS' => "pm_{$var}_colour", 'LANG' => $user->lang[strtoupper($var) . '_MESSAGE']) ); } @@ -125,7 +125,7 @@ function view_folder($id, $mode, $folder_id, $folder) FROM ' . GROUPS_TABLE . ' WHERE group_id'; } - $sql .= ' IN (' . implode(', ', array_keys($recipient_list[$ug_type])) . ')'; + $sql .= ' IN (' . implode(', ', array_map('intval', array_keys($recipient_list[$ug_type]))) . ')'; $result = $db->sql_query($sql); @@ -185,16 +185,16 @@ function view_folder($id, $mode, $folder_id, $folder) $template->assign_block_vars('messagerow', array( 'PM_CLASS' => ($row_indicator) ? 'pm_' . $row_indicator . '_colour' : '', - 'FOLDER_ID' => $folder_id, + 'FOLDER_ID' => $folder_id, 'MESSAGE_ID' => $message_id, 'MESSAGE_AUTHOR' => $message_author, - 'SENT_TIME' => $user->format_date($row['message_time']), + 'SENT_TIME' => $user->format_date($row['message_time']), 'SUBJECT' => censor_text($row['message_subject']), 'FOLDER' => (isset($folder[$row['folder_id']])) ? $folder[$row['folder_id']]['folder_name'] : '', 'U_FOLDER' => (isset($folder[$row['folder_id']])) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'folder=' . $row['folder_id']) : '', 'PM_ICON_IMG' => (!empty($icons[$row['icon_id']])) ? '<img src="' . $config['icons_path'] . '/' . $icons[$row['icon_id']]['img'] . '" width="' . $icons[$row['icon_id']]['width'] . '" height="' . $icons[$row['icon_id']]['height'] . '" alt="" title="" />' : '', 'FOLDER_IMG' => $user->img($folder_img, $folder_alt), - 'PM_IMG' => ($row_indicator) ? $user->img('pm_' . $row_indicator, '') : '', + 'PM_IMG' => ($row_indicator) ? $user->img('pm_' . $row_indicator, '') : '', 'ATTACH_ICON_IMG' => ($auth->acl_get('u_download') && $row['message_attachment'] && $config['allow_pm_attach'] && $config['auth_download_pm']) ? $user->img('icon_attach', $user->lang['TOTAL_ATTACHMENTS']) : '', 'S_PM_DELETED' => ($row['deleted']) ? true : false, @@ -207,7 +207,7 @@ function view_folder($id, $mode, $folder_id, $folder) unset($folder_info['rowset']); $template->assign_vars(array( - 'S_SHOW_RECIPIENTS' => ($folder_id == PRIVMSGS_OUTBOX || $folder_id == PRIVMSGS_SENTBOX) ? true : false, + 'S_SHOW_RECIPIENTS' => ($folder_id == PRIVMSGS_OUTBOX || $folder_id == PRIVMSGS_SENTBOX) ? true : false, 'S_SHOW_COLOUR_LEGEND' => true) ); } @@ -238,7 +238,8 @@ function view_folder($id, $mode, $folder_id, $folder) { $row = &$folder_info['rowset'][$message_id]; - include_once($phpbb_root_path . 'includes/functions_posting.'.$phpEx); + include_once($phpbb_root_path . 'includes/functions_posting.' . $phpEx); + $sql = 'SELECT p.message_text, p.bbcode_uid FROM ' . PRIVMSGS_TO_TABLE . ' t, ' . PRIVMSGS_TABLE . ' p, ' . USERS_TABLE . ' u WHERE t.user_id = ' . $user->data['user_id'] . " @@ -255,8 +256,19 @@ function view_folder($id, $mode, $folder_id, $folder) { if (isset($address[$message_id][$ug_type]) && sizeof($address[$message_id][$ug_type])) { - $sql = ($ug_type == 'u') ? 'SELECT user_id as id, username as name FROM ' . USERS_TABLE . ' WHERE user_id' : 'SELECT group_id as id, group_name as name FROM ' . GROUPS_TABLE . ' WHERE group_id'; - $sql .= ' IN (' . implode(', ', array_keys($address[$message_id][$ug_type])) . ')'; + if ($ug_type == 'u') + { + $sql = 'SELECT user_id as id, username as name + FROM ' . USERS_TABLE . ' + WHERE user_id'; + } + else + { + $sql = 'SELECT group_id as id, group_name as name + FROM ' . GROUPS_TABLE . ' + WHERE group_id'; + } + $sql .= ' IN (' . implode(', ', array_map('intval', array_keys($address[$message_id][$ug_type]))) . ')'; $result = $db->sql_query($sql); @@ -311,6 +323,7 @@ function view_folder($id, $mode, $folder_id, $folder) $value['bcc'] .= (isset($values['bcc']) && is_array($values['bcc'])) ? ',' . implode(',', $values['bcc']) : ''; $value['to'] .= (isset($values['to']) && is_array($values['to'])) ? ',' . implode(',', $values['to']) : ''; } + // Remove the commas which will appear before the first entry. $value['to'] = substr($value['to'], 1); $value['bcc'] = substr($value['bcc'], 1); @@ -332,14 +345,15 @@ function view_folder($id, $mode, $folder_id, $folder) $string = substr($string, 0, -1) . $newline; } break; + case 'XML': $mimetype = 'application/xml'; $filetype = 'xml'; $string = '<?xml version="1.0"?>' . "\n"; $string .= "<phpbb>\n"; + foreach ($data as $value) { - $string .= "\t<privmsg>\n"; if (is_array($value['to'])) @@ -366,7 +380,9 @@ function view_folder($id, $mode, $folder_id, $folder) $string .= "\t</privmsg>\n"; } $string .= '</phpbb>'; + break; } + header('Pragma: no-cache'); header("Content-Type: $mimetype; name=\"data.$filetype\""); header("Content-disposition: attachment; filename=data.$filetype"); @@ -407,6 +423,11 @@ function get_pm_from($folder_id, $folder, $user_id) { $min_post_time = time() - ($sort_days * 86400); + if (isset($_POST['sort'])) + { + $start = 0; + } + $sql = 'SELECT COUNT(t.msg_id) AS pm_count FROM ' . PRIVMSGS_TO_TABLE . ' t, ' . PRIVMSGS_TABLE . " p WHERE $folder_sql @@ -414,13 +435,7 @@ function get_pm_from($folder_id, $folder, $user_id) AND t.msg_id = p.msg_id AND p.message_time >= $min_post_time"; $result = $db->sql_query_limit($sql, 1); - - if (isset($_POST['sort'])) - { - $start = 0; - } - - $pm_count = ($row = $db->sql_fetchrow($result)) ? $row['pm_count'] : 0; + $pm_count = (int) $db->sql_fetchfield('pm_count'); $db->sql_freeresult($result); $sql_limit_time = "AND p.message_time >= $min_post_time"; @@ -432,9 +447,9 @@ function get_pm_from($folder_id, $folder, $user_id) } $template->assign_vars(array( - 'PAGINATION' => generate_pagination(append_sid("{$phpbb_root_path}ucp.$phpEx", "i=pm&mode=view&action=view_folder&f=$folder_id&$u_sort_param"), $pm_count, $config['topics_per_page'], $start), - 'PAGE_NUMBER' => on_page($pm_count, $config['topics_per_page'], $start), - 'TOTAL_MESSAGES'=> (($pm_count == 1) ? $user->lang['VIEW_PM_MESSAGE'] : sprintf($user->lang['VIEW_PM_MESSAGES'], $pm_count)), + 'PAGINATION' => generate_pagination(append_sid("{$phpbb_root_path}ucp.$phpEx", "i=pm&mode=view&action=view_folder&f=$folder_id&$u_sort_param"), $pm_count, $config['topics_per_page'], $start), + 'PAGE_NUMBER' => on_page($pm_count, $config['topics_per_page'], $start), + 'TOTAL_MESSAGES' => (($pm_count == 1) ? $user->lang['VIEW_PM_MESSAGE'] : sprintf($user->lang['VIEW_PM_MESSAGES'], $pm_count)), 'POST_IMG' => (!$auth->acl_get('u_sendpm')) ? $user->img('btn_locked', 'PM_LOCKED') : $user->img('btn_post_pm', 'POST_PM'), @@ -483,7 +498,6 @@ function get_pm_from($folder_id, $folder, $user_id) AND t.msg_id = p.msg_id $sql_limit_time ORDER BY $sql_sort_order"; - $result = $db->sql_query_limit($sql, $sql_limit, $sql_start); while ($row = $db->sql_fetchrow($result)) diff --git a/phpBB/includes/ucp/ucp_pm_viewmessage.php b/phpBB/includes/ucp/ucp_pm_viewmessage.php index 7261066288..e66b519327 100644 --- a/phpBB/includes/ucp/ucp_pm_viewmessage.php +++ b/phpBB/includes/ucp/ucp_pm_viewmessage.php @@ -38,10 +38,12 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row) $icons = array(); $cache->obtain_icons($icons); + $bbcode = false; + // Instantiate BBCode if need be if ($message_row['bbcode_bitfield']) { - include($phpbb_root_path . 'includes/bbcode.'.$phpEx); + include($phpbb_root_path . 'includes/bbcode.' . $phpEx); $bbcode = new bbcode($message_row['bbcode_bitfield']); } @@ -146,9 +148,9 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row) { if ($user_info['user_sig_bbcode_bitfield']) { - if (!isset($bbcode) || !$bbcode) + if ($bbcode === false) { - include($phpbb_root_path . 'includes/bbcode.'.$phpEx); + include($phpbb_root_path . 'includes/bbcode.' . $phpEx); $bbcode = new bbcode($user_info['user_sig_bbcode_bitfield']); } @@ -163,41 +165,41 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row) $template->assign_vars(array( 'AUTHOR_NAME' => ($user_info['user_colour']) ? '<span style="color:#' . $user_info['user_colour'] . '">' . $user_info['username'] . '</span>' : $user_info['username'], - 'AUTHOR_RANK' => $user_info['rank_title'], - 'RANK_IMAGE' => $user_info['rank_image'], + 'AUTHOR_RANK' => $user_info['rank_title'], + 'RANK_IMAGE' => $user_info['rank_image'], 'AUTHOR_AVATAR' => (isset($user_info['avatar'])) ? $user_info['avatar'] : '', 'AUTHOR_JOINED' => $user->format_date($user_info['user_regdate']), - 'AUTHOR_POSTS' => (!empty($user_info['user_posts'])) ? $user_info['user_posts'] : '', - 'AUTHOR_FROM' => (!empty($user_info['user_from'])) ? $user_info['user_from'] : '', + 'AUTHOR_POSTS' => (!empty($user_info['user_posts'])) ? $user_info['user_posts'] : '', + 'AUTHOR_FROM' => (!empty($user_info['user_from'])) ? $user_info['user_from'] : '', 'ONLINE_IMG' => (!$config['load_onlinetrack']) ? '' : ((isset($user_info['online']) && $user_info['online']) ? $user->img('btn_online', $user->lang['ONLINE']) : $user->img('btn_offline', $user->lang['OFFLINE'])), 'S_ONLINE' => (!$config['load_onlinetrack']) ? false : ((isset($user_info['online']) && $user_info['online']) ? true : false), - 'DELETE_IMG' => $user->img('btn_delete', $user->lang['DELETE_MESSAGE']), - 'INFO_IMG' => $user->img('btn_info', $user->lang['VIEW_PM_INFO']), + 'DELETE_IMG' => $user->img('btn_delete', $user->lang['DELETE_MESSAGE']), + 'INFO_IMG' => $user->img('btn_info', $user->lang['VIEW_PM_INFO']), 'PROFILE_IMG' => $user->img('btn_profile', $user->lang['READ_PROFILE']), - 'EMAIL_IMG' => $user->img('btn_email', $user->lang['SEND_EMAIL']), - 'QUOTE_IMG' => $user->img('btn_quote', $user->lang['POST_QUOTE_PM']), + 'EMAIL_IMG' => $user->img('btn_email', $user->lang['SEND_EMAIL']), + 'QUOTE_IMG' => $user->img('btn_quote', $user->lang['POST_QUOTE_PM']), 'REPLY_IMG' => $user->img('btn_reply_pm', $user->lang['POST_REPLY_PM']), - 'EDIT_IMG' => $user->img('btn_edit', $user->lang['POST_EDIT_PM']), + 'EDIT_IMG' => $user->img('btn_edit', $user->lang['POST_EDIT_PM']), 'MINI_POST_IMG' => $user->img('icon_post', $user->lang['PM']), - 'SENT_DATE' => $user->format_date($message_row['message_time']), + 'SENT_DATE' => $user->format_date($message_row['message_time']), 'SUBJECT' => $message_row['message_subject'], - 'MESSAGE' => $message, - 'SIGNATURE' => ($message_row['enable_sig']) ? $signature : '', + 'MESSAGE' => $message, + 'SIGNATURE' => ($message_row['enable_sig']) ? $signature : '', 'EDITED_MESSAGE' => $l_edited_by, 'U_INFO' => ($auth->acl_get('m_info') && $message_row['forwarded']) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'mode=pm_details&p=' . $message_row['msg_id'], true, $user->session_id) : '', - 'U_DELETE' => ($auth->acl_get('u_pm_delete')) ? "$url&mode=compose&action=delete&f=$folder_id&p=" . $message_row['msg_id'] : '', + 'U_DELETE' => ($auth->acl_get('u_pm_delete')) ? "$url&mode=compose&action=delete&f=$folder_id&p=" . $message_row['msg_id'] : '', 'U_AUTHOR_PROFILE' => append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $author_id), - 'U_EMAIL' => $user_info['email'], - 'U_QUOTE' => ($auth->acl_get('u_sendpm')) ? "$url&mode=compose&action=quote&f=$folder_id&p=" . $message_row['msg_id'] : '', - 'U_EDIT' => (($message_row['message_time'] > time() - $config['pm_edit_time'] || !$config['pm_edit_time']) && $folder_id == PRIVMSGS_OUTBOX && $auth->acl_get('u_pm_edit')) ? "$url&mode=compose&action=edit&f=$folder_id&p=" . $message_row['msg_id'] : '', - 'U_POST_REPLY_PM' => ($auth->acl_get('u_sendpm')) ? "$url&mode=compose&action=reply&f=$folder_id&p=" . $message_row['msg_id'] : '', + 'U_EMAIL' => $user_info['email'], + 'U_QUOTE' => ($auth->acl_get('u_sendpm')) ? "$url&mode=compose&action=quote&f=$folder_id&p=" . $message_row['msg_id'] : '', + 'U_EDIT' => (($message_row['message_time'] > time() - $config['pm_edit_time'] || !$config['pm_edit_time']) && $folder_id == PRIVMSGS_OUTBOX && $auth->acl_get('u_pm_edit')) ? "$url&mode=compose&action=edit&f=$folder_id&p=" . $message_row['msg_id'] : '', + 'U_POST_REPLY_PM' => ($auth->acl_get('u_sendpm')) ? "$url&mode=compose&action=reply&f=$folder_id&p=" . $message_row['msg_id'] : '', 'U_PREVIOUS_PM' => "$url&f=$folder_id&p=" . $message_row['msg_id'] . "&view=previous", 'U_NEXT_PM' => "$url&f=$folder_id&p=" . $message_row['msg_id'] . "&view=next", - 'S_HAS_ATTACHMENTS' => (sizeof($attachments)) ? true : false, + 'S_HAS_ATTACHMENTS' => (sizeof($attachments)) ? true : false, 'S_DISPLAY_NOTICE' => $display_notice && $message_row['message_attachment'], 'U_PRINT_PM' => ($config['print_pm'] && $auth->acl_get('u_pm_printpm')) ? "$url&f=$folder_id&p=" . $message_row['msg_id'] . "&view=print" : '', @@ -253,9 +255,11 @@ function message_history($msg_id, $user_id, $message_row, $folder) $sql .= ($sort_dir == 'd') ? 'ASC' : 'DESC'; $result = $db->sql_query($sql); + $row = $db->sql_fetchrow($result); - if (!($row = $db->sql_fetchrow($result))) + if (!$row) { + $db->sql_freeresult($result); return false; } @@ -291,11 +295,11 @@ function message_history($msg_id, $user_id, $message_row, $folder) } // Instantiate BBCode class - if (!isset($bbcode) && $bbcode_bitfield) + if ((empty($bbcode) || $bbcode === false) && $bbcode_bitfield) { if (!class_exists('bbcode')) { - include($phpbb_root_path . 'includes/bbcode.'.$phpEx); + include($phpbb_root_path . 'includes/bbcode.' . $phpEx); } $bbcode = new bbcode($bbcode_bitfield); } @@ -332,10 +336,10 @@ function message_history($msg_id, $user_id, $message_row, $folder) } $template->assign_block_vars('history_row', array( - 'AUTHOR_NAME' => $author, - 'SUBJECT' => $subject, - 'SENT_DATE' => $user->format_date($row['message_time']), - 'MESSAGE' => str_replace("\n", '<br />', $message), + 'AUTHOR_NAME' => $author, + 'SUBJECT' => $subject, + 'SENT_DATE' => $user->format_date($row['message_time']), + 'MESSAGE' => str_replace("\n", '<br />', $message), 'FOLDER' => implode(', ', $row['folder']), 'S_CURRENT_MSG' => ($row['msg_id'] == $msg_id), @@ -351,7 +355,7 @@ function message_history($msg_id, $user_id, $message_row, $folder) } $template->assign_vars(array( - 'QUOTE_IMG' => $user->img('btn_quote', $user->lang['REPLY_WITH_QUOTE']), + 'QUOTE_IMG' => $user->img('btn_quote', $user->lang['REPLY_WITH_QUOTE']), 'TITLE' => $title, 'U_VIEW_NEXT_HISTORY' => "$url&p=" . (($next_history_pm) ? $next_history_pm : $msg_id), @@ -396,9 +400,11 @@ function get_user_informations($user_id, $user_row) WHERE session_user_id = $user_id GROUP BY session_user_id"; $result = $db->sql_query_limit($sql, 1); + $row = $db->sql_fetchrow($result); + $db->sql_freeresult($result); $update_time = $config['load_online_time'] * 60; - if ($row = $db->sql_fetchrow($result)) + if ($row) { $user_row['online'] = (time() - $update_time < $row['online_time'] && ($row['viewonline'] && $user_row['user_allow_viewonline'])) ? true : false; } @@ -415,10 +421,11 @@ function get_user_informations($user_id, $user_row) { case AVATAR_UPLOAD: $avatar_img = $config['avatar_path'] . '/'; - break; + break; + case AVATAR_GALLERY: $avatar_img = $config['avatar_gallery_path'] . '/'; - break; + break; } $avatar_img .= $user_row['user_avatar']; @@ -426,7 +433,7 @@ function get_user_informations($user_id, $user_row) } $user_row['rank_title'] = $user_row['rank_image'] = ''; - + if (!empty($user_row['user_rank'])) { $user_row['rank_title'] = (isset($ranks['special'][$user_row['user_rank']])) ? $ranks['special'][$user_row['user_rank']]['rank_title'] : ''; diff --git a/phpBB/includes/ucp/ucp_prefs.php b/phpBB/includes/ucp/ucp_prefs.php index 9882d9c223..a8ca9ad844 100644 --- a/phpBB/includes/ucp/ucp_prefs.php +++ b/phpBB/includes/ucp/ucp_prefs.php @@ -29,6 +29,14 @@ class ucp_prefs { case 'personal': + $data = array( + 'notifymethod' => $user->data['user_notify_type'], + 'dateformat' => $user->data['user_dateformat'], + 'lang' => $user->data['user_lang'], + 'style' => $user->data['user_style'], + 'tz' => $user->data['user_timezone'], + ); + if ($submit) { $var_ary = array( @@ -58,27 +66,25 @@ class ucp_prefs ); $error = validate_data($data, $var_ary); - extract($data); - unset($data); if (!sizeof($error)) { - $user->optionset('popuppm', $popuppm); + $user->optionset('popuppm', $data['popuppm']); $sql_ary = array( - 'user_allow_pm' => $allowpm, - 'user_allow_viewemail' => $viewemail, - 'user_allow_massemail' => $massemail, - 'user_allow_viewonline' => ($auth->acl_get('u_hideonline')) ? !$hideonline : $user->data['user_allow_viewonline'], - 'user_notify_type' => $notifymethod, - 'user_notify_pm' => $notifypm, + 'user_allow_pm' => $data['allowpm'], + 'user_allow_viewemail' => $data['viewemail'], + 'user_allow_massemail' => $data['massemail'], + 'user_allow_viewonline' => ($auth->acl_get('u_hideonline')) ? !$data['hideonline'] : $user->data['user_allow_viewonline'], + 'user_notify_type' => $data['notifymethod'], + 'user_notify_pm' => $data['notifypm'], 'user_options' => $user->data['user_options'], - 'user_dst' => $dst, - 'user_dateformat' => $dateformat, - 'user_lang' => $lang, - 'user_timezone' => $tz, - 'user_style' => $style, + 'user_dst' => $data['dst'], + 'user_dateformat' => $data['dateformat'], + 'user_lang' => $data['lang'], + 'user_timezone' => $data['tz'], + 'user_style' => $data['style'], ); $sql = 'UPDATE ' . USERS_TABLE . ' @@ -95,39 +101,11 @@ class ucp_prefs $error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error); } - $viewemail = (isset($viewemail)) ? $viewemail : $user->data['user_allow_viewemail']; - $view_email_yes = ($viewemail) ? ' checked="checked"' : ''; - $view_email_no = (!$viewemail) ? ' checked="checked"' : ''; - $massemail = (isset($massemail)) ? $massemail : $user->data['user_allow_massemail']; - $mass_email_yes = ($massemail) ? ' checked="checked"' : ''; - $mass_email_no = (!$massemail) ? ' checked="checked"' : ''; - $allowpm = (isset($allowpm)) ? $allowpm : $user->data['user_allow_pm']; - $allow_pm_yes = ($allowpm) ? ' checked="checked"' : ''; - $allow_pm_no = (!$allowpm) ? ' checked="checked"' : ''; - $hideonline = (isset($hideonline)) ? $hideonline : !$user->data['user_allow_viewonline']; - $hide_online_yes = ($hideonline) ? ' checked="checked"' : ''; - $hide_online_no = (!$hideonline) ? ' checked="checked"' : ''; - $notifypm = (isset($notifypm)) ? $notifypm : $user->data['user_notify_pm']; - $notify_pm_yes = ($notifypm) ? ' checked="checked"' : ''; - $notify_pm_no = (!$notifypm) ? ' checked="checked"' : ''; - $popuppm = (isset($popuppm)) ? $popuppm : $user->optionget('popuppm'); - $popup_pm_yes = ($popuppm) ? ' checked="checked"' : ''; - $popup_pm_no = (!$popuppm) ? ' checked="checked"' : ''; - $dst = (isset($dst)) ? $dst : $user->data['user_dst']; - $dst_yes = ($dst) ? ' checked="checked"' : ''; - $dst_no = (!$dst) ? ' checked="checked"' : ''; - - $notifymethod = (isset($notifymethod)) ? $notifymethod : $user->data['user_notify_type']; - $dateformat = (isset($dateformat)) ? $dateformat : $user->data['user_dateformat']; - $lang = (isset($lang)) ? $lang : $user->data['user_lang']; - $style = (isset($style)) ? $style : $user->data['user_style']; - $tz = (isset($tz)) ? $tz : $user->data['user_timezone']; - $dateformat_options = ''; foreach ($user->lang['dateformats'] as $format => $null) { - $dateformat_options .= '<option value="' . $format . '"' . (($format == $dateformat) ? ' selected="selected"' : '') . '>'; + $dateformat_options .= '<option value="' . $format . '"' . (($format == $data['dateformat']) ? ' selected="selected"' : '') . '>'; $dateformat_options .= $user->format_date(time(), $format, true) . ((strpos($format, '|') !== false) ? ' [' . $user->lang['RELATIVE_DAYS'] . ']' : ''); $dateformat_options .= '</option>'; } @@ -135,7 +113,7 @@ class ucp_prefs $s_custom = false; $dateformat_options .= '<option value="custom"'; - if (!in_array($dateformat, array_keys($user->lang['dateformats']))) + if (!in_array($data['dateformat'], array_keys($user->lang['dateformats']))) { $dateformat_options .= ' selected="selected"'; $s_custom = true; @@ -145,58 +123,54 @@ class ucp_prefs $template->assign_vars(array( 'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '', - 'VIEW_EMAIL_YES' => $view_email_yes, - 'VIEW_EMAIL_NO' => $view_email_no, - 'ADMIN_EMAIL_YES' => $mass_email_yes, - 'ADMIN_EMAIL_NO' => $mass_email_no, - 'HIDE_ONLINE_YES' => $hide_online_yes, - 'HIDE_ONLINE_NO' => $hide_online_no, - 'ALLOW_PM_YES' => $allow_pm_yes, - 'ALLOW_PM_NO' => $allow_pm_no, - 'NOTIFY_PM_YES' => $notify_pm_yes, - 'NOTIFY_PM_NO' => $notify_pm_no, - 'POPUP_PM_YES' => $popup_pm_yes, - 'POPUP_PM_NO' => $popup_pm_no, - 'DST_YES' => $dst_yes, - 'DST_NO' => $dst_no, - 'NOTIFY_EMAIL' => ($notifymethod == NOTIFY_EMAIL) ? 'checked="checked"' : '', - 'NOTIFY_IM' => ($notifymethod == NOTIFY_IM) ? 'checked="checked"' : '', - 'NOTIFY_BOTH' => ($notifymethod == NOTIFY_BOTH) ? 'checked="checked"' : '', - - 'DATE_FORMAT' => $dateformat, + 'S_NOTIFY_EMAIL' => ($data['notifymethod'] == NOTIFY_EMAIL) ? true : false, + 'S_NOTIFY_IM' => ($data['notifymethod'] == NOTIFY_IM) ? true : false, + 'S_NOTIFY_BOTH' => ($data['notifymethod'] == NOTIFY_BOTH) ? true : false, + 'S_VIEW_EMAIL' => (isset($data['viewemail'])) ? $data['viewemail'] : $user->data['user_allow_viewemail'], + 'S_MASS_EMAIL' => (isset($data['massemail'])) ? $data['massemail'] : $user->data['user_allow_massemail'], + 'S_ALLOW_PM' => (isset($data['allowpm'])) ? $data['allowpm'] : $user->data['user_allow_pm'], + 'S_HIDE_ONLINE' => (isset($data['hideonline'])) ? $data['hideonline'] : !$user->data['user_allow_viewonline'], + 'S_NOTIFY_PM' => (isset($data['notifypm'])) ? $data['notifypm'] : $user->data['user_notify_pm'], + 'S_POPUP_PM' => (isset($data['popuppm'])) ? $data['popuppm'] : $user->optionget('popuppm'), + 'S_DST' => (isset($data['dst'])) ? $data['dst'] : $user->data['user_dst'], + + 'DATE_FORMAT' => $data['dateformat'], 'S_DATEFORMAT_OPTIONS' => $dateformat_options, 'S_CUSTOM_DATEFORMAT' => $s_custom, 'DEFAULT_DATEFORMAT' => $config['default_dateformat'], 'A_DEFAULT_DATEFORMAT' => addslashes($config['default_dateformat']), - 'S_LANG_OPTIONS' => language_select($lang), - 'S_STYLE_OPTIONS' => style_select($style), - 'S_TZ_OPTIONS' => tz_select($tz), - 'S_CAN_HIDE_ONLINE' => true, + 'S_LANG_OPTIONS' => language_select($data['lang']), + 'S_STYLE_OPTIONS' => style_select($data['style']), + 'S_TZ_OPTIONS' => tz_select($data['tz']), + 'S_CAN_HIDE_ONLINE' => ($auth->acl_get('u_hideonline')) ? true : false, 'S_SELECT_NOTIFY' => ($config['jab_enable'] && $user->data['user_jabber'] && @extension_loaded('xml')) ? true : false) ); - break; + + break; case 'view': - if ($submit) - { - $var_ary = array( - 'topic_sk' => (string) 't', - 'topic_sd' => (string) 'd', - 'topic_st' => 0, + $data = array( + 'topic_sk' => (!empty($user->data['user_topic_sortby_type'])) ? $user->data['user_topic_sortby_type'] : 't', + 'topic_sd' => (!empty($user->data['user_topic_sortby_dir'])) ? $user->data['user_topic_sortby_dir'] : 'd', + 'topic_st' => (!empty($user->data['user_topic_show_days'])) ? $user->data['user_topic_show_days'] : 0, - 'post_sk' => (string) 't', - 'post_sd' => (string) 'a', - 'post_st' => 0, + 'post_sk' => (!empty($user->data['user_post_sortby_type'])) ? $user->data['user_post_sortby_type'] : 't', + 'post_sd' => (!empty($user->data['user_post_sortby_dir'])) ? $user->data['user_post_sortby_dir'] : 'a', + 'post_st' => (!empty($user->data['user_post_show_days'])) ? $user->data['user_post_show_days'] : 0, + ); + if ($submit) + { + $var_ary = array_merge($data, array( 'images' => true, 'flash' => false, 'smilies' => true, 'sigs' => true, 'avatars' => true, 'wordcensor'=> false, - ); + )); foreach ($var_ary as $var => $default) { @@ -211,30 +185,29 @@ class ucp_prefs ); $error = validate_data($data, $var_ary); - extract($data); - unset($data); if (!sizeof($error)) { - $user->optionset('viewimg', $images); - $user->optionset('viewflash', $flash); - $user->optionset('viewsmilies', $smilies); - $user->optionset('viewsigs', $sigs); - $user->optionset('viewavatars', $avatars); + $user->optionset('viewimg', $data['images']); + $user->optionset('viewflash', $data['flash']); + $user->optionset('viewsmilies', $data['smilies']); + $user->optionset('viewsigs', $data['sigs']); + $user->optionset('viewavatars', $data['avatars']); + if ($auth->acl_get('u_chgcensors')) { - $user->optionset('viewcensors', $wordcensor); + $user->optionset('viewcensors', $data['wordcensor']); } $sql_ary = array( - 'user_options' => $user->data['user_options'], - 'user_topic_sortby_type'=> $topic_sk, - 'user_post_sortby_type' => $post_sk, - 'user_topic_sortby_dir' => $topic_sd, - 'user_post_sortby_dir' => $post_sd, - - 'user_topic_show_days' => $topic_st, - 'user_post_show_days' => $post_st, + 'user_options' => $user->data['user_options'], + 'user_topic_sortby_type' => $data['topic_sk'], + 'user_post_sortby_type' => $data['post_sk'], + 'user_topic_sortby_dir' => $data['topic_sd'], + 'user_post_sortby_dir' => $data['post_sd'], + + 'user_topic_show_days' => $data['topic_st'], + 'user_post_show_days' => $data['post_st'], ); $sql = 'UPDATE ' . USERS_TABLE . ' @@ -251,15 +224,6 @@ class ucp_prefs $error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error); } - $topic_sk = (isset($topic_sk)) ? $topic_sk : ((!empty($user->data['user_topic_sortby_type'])) ? $user->data['user_topic_sortby_type'] : 't'); - $post_sk = (isset($post_sk)) ? $post_sk : ((!empty($user->data['user_post_sortby_type'])) ? $user->data['user_post_sortby_type'] : 't'); - - $topic_sd = (isset($topic_sd)) ? $topic_sd : ((!empty($user->data['user_topic_sortby_dir'])) ? $user->data['user_topic_sortby_dir'] : 'd'); - $post_sd = (isset($post_sd)) ? $post_sd : ((!empty($user->data['user_post_sortby_dir'])) ? $user->data['user_post_sortby_dir'] : 'd'); - - $topic_st = (isset($topic_st)) ? $topic_st : ((!empty($user->data['user_topic_show_days'])) ? $user->data['user_topic_show_days'] : 0); - $post_st = (isset($post_st)) ? $post_st : ((!empty($user->data['user_post_show_days'])) ? $user->data['user_post_show_days'] : 0); - $sort_dir_text = array('a' => $user->lang['ASCENDING'], 'd' => $user->lang['DESCENDING']); // Topic ordering options @@ -280,7 +244,7 @@ class ucp_prefs ${'s_limit_' . $sort_option . '_days'} = '<select name="' . $sort_option . '_st">'; foreach (${'limit_' . $sort_option . '_days'} as $day => $text) { - $selected = (${$sort_option . '_st'} == $day) ? ' selected="selected"' : ''; + $selected = ($data[$sort_option . '_st'] == $day) ? ' selected="selected"' : ''; ${'s_limit_' . $sort_option . '_days'} .= '<option value="' . $day . '"' . $selected . '>' . $text . '</option>'; } ${'s_limit_' . $sort_option . '_days'} .= '</select>'; @@ -288,7 +252,7 @@ class ucp_prefs ${'s_sort_' . $sort_option . '_key'} = '<select name="' . $sort_option . '_sk">'; foreach (${'sort_by_' . $sort_option . '_text'} as $key => $text) { - $selected = (${$sort_option . '_sk'} == $key) ? ' selected="selected"' : ''; + $selected = ($data[$sort_option . '_sk'] == $key) ? ' selected="selected"' : ''; ${'s_sort_' . $sort_option . '_key'} .= '<option value="' . $key . '"' . $selected . '>' . $text . '</option>'; } ${'s_sort_' . $sort_option . '_key'} .= '</select>'; @@ -296,46 +260,21 @@ class ucp_prefs ${'s_sort_' . $sort_option . '_dir'} = '<select name="' . $sort_option . '_sd">'; foreach ($sort_dir_text as $key => $value) { - $selected = (${$sort_option . '_sd'} == $key) ? ' selected="selected"' : ''; + $selected = ($data[$sort_option . '_sd'] == $key) ? ' selected="selected"' : ''; ${'s_sort_' . $sort_option . '_dir'} .= '<option value="' . $key . '"' . $selected . '>' . $value . '</option>'; } ${'s_sort_' . $sort_option . '_dir'} .= '</select>'; } - $images = (isset($images)) ? $images : $user->optionget('viewimg'); - $images_yes = ($images) ? ' checked="checked"' : ''; - $images_no = (!$images) ? ' checked="checked"' : ''; - $flash = (isset($flash)) ? $flash : $user->optionget('viewflash'); - $flash_yes = ($flash) ? ' checked="checked"' : ''; - $flash_no = (!$flash) ? ' checked="checked"' : ''; - $smilies = (isset($smilies)) ? $smilies : $user->optionget('viewsmilies'); - $smilies_yes = ($smilies) ? ' checked="checked"' : ''; - $smilies_no = (!$smilies) ? ' checked="checked"' : ''; - $sigs = (isset($sigs)) ? $sigs : $user->optionget('viewsigs'); - $sigs_yes = ($sigs) ? ' checked="checked"' : ''; - $sigs_no = (!$sigs) ? ' checked="checked"' : ''; - $avatars = (isset($avatars)) ? $avatars : $user->optionget('viewavatars'); - $avatars_yes = ($avatars) ? ' checked="checked"' : ''; - $avatars_no = (!$avatars) ? ' checked="checked"' : ''; - $wordcensor = (isset($wordcensor)) ? $wordcensor : $user->optionget('viewcensors'); - $wordcensor_yes = ($wordcensor) ? ' checked="checked"' : ''; - $wordcensor_no = (!$wordcensor) ? ' checked="checked"' : ''; - $template->assign_vars(array( 'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '', - 'VIEW_IMAGES_YES' => $images_yes, - 'VIEW_IMAGES_NO' => $images_no, - 'VIEW_FLASH_YES' => $flash_yes, - 'VIEW_FLASH_NO' => $flash_no, - 'VIEW_SMILIES_YES' => $smilies_yes, - 'VIEW_SMILIES_NO' => $smilies_no, - 'VIEW_SIGS_YES' => $sigs_yes, - 'VIEW_SIGS_NO' => $sigs_no, - 'VIEW_AVATARS_YES' => $avatars_yes, - 'VIEW_AVATARS_NO' => $avatars_no, - 'DISABLE_CENSORS_YES' => $wordcensor_yes, - 'DISABLE_CENSORS_NO' => $wordcensor_no, + 'S_IMAGES' => (isset($data['images'])) ? $data['images'] : $user->optionget('viewimg'), + 'S_FLASH' => (isset($data['flash'])) ? $data['flash'] : $user->optionget('viewflash'), + 'S_SMILIES' => (isset($data['smilies'])) ? $data['smilies'] : $user->optionget('viewsmilies'), + 'S_SIGS' => (isset($data['sigs'])) ? $data['sigs'] : $user->optionget('viewsigs'), + 'S_AVATARS' => (isset($data['avatars'])) ? $data['avatars'] : $user->optionget('viewavatars'), + 'S_DISABLE_CENSORS' => (isset($data['wordcensor'])) ? $data['wordcensor'] : $user->optionget('viewcensors'), 'S_CHANGE_CENSORS' => ($auth->acl_get('u_chgcensors')) ? true : false, @@ -347,75 +286,52 @@ class ucp_prefs 'S_POST_SORT_DIR' => $s_sort_post_dir) ); - break; + break; case 'post': + $data = array( + 'bbcode' => $user->optionget('bbcode'), + 'smilies' => $user->optionget('smilies'), + 'sig' => $user->optionget('attachsig'), + 'notify' => $user->data['user_notify'], + ); + if ($submit) { - $var_ary = array( - 'bbcode' => true, - 'smilies' => true, - 'sig' => true, - 'notify' => false, - ); + $var_ary = $data; foreach ($var_ary as $var => $default) { - $$var = request_var($var, $default); + $data[$var] = request_var($var, $default); } - $user->optionset('bbcode', $bbcode); - $user->optionset('smilies', $smilies); - $user->optionset('attachsig', $sig); + $user->optionset('bbcode', $data['bbcode']); + $user->optionset('smilies', $data['smilies']); + $user->optionset('attachsig', $data['sig']); - if (!sizeof($error)) - { - $sql_ary = array( - 'user_options' => $user->data['user_options'], - 'user_notify' => $notify, - ); - - $sql = 'UPDATE ' . USERS_TABLE . ' - SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' - WHERE user_id = ' . $user->data['user_id']; - $db->sql_query($sql); + $sql_ary = array( + 'user_options' => $user->data['user_options'], + 'user_notify' => $data['notify'], + ); - meta_refresh(3, $this->u_action); - $message = $user->lang['PREFERENCES_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>'); - trigger_error($message); - } + $sql = 'UPDATE ' . USERS_TABLE . ' + SET ' . $db->sql_build_array('UPDATE', $sql_ary) . ' + WHERE user_id = ' . $user->data['user_id']; + $db->sql_query($sql); - // Replace "error" strings with their real, localised form - $error = preg_replace('#^([A-Z_]+)$#e', "(!empty(\$user->lang['\\1'])) ? \$user->lang['\\1'] : '\\1'", $error); + meta_refresh(3, $this->u_action); + $message = $user->lang['PREFERENCES_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_UCP'], '<a href="' . $this->u_action . '">', '</a>'); + trigger_error($message); } - $bbcode = (isset($bbcode)) ? $bbcode : $user->optionget('bbcode'); - $bbcode_yes = ($bbcode) ? ' checked="checked"' : ''; - $bbcode_no = (!$bbcode) ? ' checked="checked"' : ''; - $smilies = (isset($smilies)) ? $smilies : $user->optionget('smilies'); - $smilies_yes = ($smilies) ? ' checked="checked"' : ''; - $smilies_no = (!$smilies) ? ' checked="checked"' : ''; - $sig = (isset($sig)) ? $sig : $user->optionget('attachsig'); - $sig_yes = ($sig) ? ' checked="checked"' : ''; - $sig_no = (!$sig) ? ' checked="checked"' : ''; - $notify = (isset($notify)) ? $notify : $user->data['user_notify']; - $notify_yes = ($notify) ? ' checked="checked"' : ''; - $notify_no = (!$notify) ? ' checked="checked"' : ''; - $template->assign_vars(array( - 'ERROR' => (sizeof($error)) ? implode('<br />', $error) : '', - - 'DEFAULT_BBCODE_YES' => $bbcode_yes, - 'DEFAULT_BBCODE_NO' => $bbcode_no, - 'DEFAULT_SMILIES_YES' => $smilies_yes, - 'DEFAULT_SMILIES_NO' => $smilies_no, - 'DEFAULT_SIG_YES' => $sig_yes, - 'DEFAULT_SIG_NO' => $sig_no, - 'DEFAULT_NOTIFY_YES' => $notify_yes, - 'DEFAULT_NOTIFY_NO' => $notify_no,) + 'S_BBCODE' => $data['bbcode'], + 'S_SMILIES' => $data['smilies'], + 'S_SIG' => $data['sig'], + 'S_NOTIFY' => $data['notify']) ); - break; + break; } $template->assign_vars(array( diff --git a/phpBB/includes/ucp/ucp_profile.php b/phpBB/includes/ucp/ucp_profile.php index 7f593a26a5..ef39ba81a3 100644 --- a/phpBB/includes/ucp/ucp_profile.php +++ b/phpBB/includes/ucp/ucp_profile.php @@ -220,7 +220,7 @@ class ucp_profile 'L_USERNAME_EXPLAIN' => sprintf($user->lang[$user_char_ary[str_replace('\\\\', '\\', $config['allow_name_chars'])] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']), 'L_CHANGE_PASSWORD_EXPLAIN' => sprintf($user->lang['CHANGE_PASSWORD_EXPLAIN'], $config['min_pass_chars'], $config['max_pass_chars']), - 'S_FORCE_PASSWORD' => ($config['chg_passforce'] && $this->data['user_passchg'] < time() - $config['chg_passforce']) ? true : false, + 'S_FORCE_PASSWORD' => ($config['chg_passforce'] && $user->data['user_passchg'] < time() - $config['chg_passforce']) ? true : false, 'S_CHANGE_USERNAME' => ($config['allow_namechange'] && $auth->acl_get('u_chgname')) ? true : false, 'S_CHANGE_EMAIL' => ($auth->acl_get('u_chgemail')) ? true : false, 'S_CHANGE_PASSWORD' => ($auth->acl_get('u_chgpasswd')) ? true : false) diff --git a/phpBB/includes/ucp/ucp_register.php b/phpBB/includes/ucp/ucp_register.php index 928882e02f..7a55b3495b 100644 --- a/phpBB/includes/ucp/ucp_register.php +++ b/phpBB/includes/ucp/ucp_register.php @@ -24,16 +24,16 @@ class ucp_register // if ($config['require_activation'] == USER_ACTIVATION_DISABLE) { - trigger_error($user->lang['UCP_REGISTER_DISABLE']); + trigger_error('UCP_REGISTER_DISABLE'); } include($phpbb_root_path . 'includes/functions_profile_fields.' . $phpEx); - $confirm_id = request_var('confirm_id', ''); - $coppa = (isset($_REQUEST['coppa'])) ? ((!empty($_REQUEST['coppa'])) ? 1 : 0) : false; - $agreed = (!empty($_POST['agreed'])) ? 1 : 0; - $submit = (isset($_POST['submit'])) ? true : false; - $change_lang = request_var('change_lang', ''); + $confirm_id = request_var('confirm_id', ''); + $coppa = (isset($_REQUEST['coppa'])) ? ((!empty($_REQUEST['coppa'])) ? 1 : 0) : false; + $agreed = (!empty($_POST['agreed'])) ? 1 : 0; + $submit = (isset($_POST['submit'])) ? true : false; + $change_lang = request_var('change_lang', ''); if ($change_lang) { @@ -155,8 +155,10 @@ class ucp_register AND session_id = '" . $db->sql_escape($user->session_id) . "' AND confirm_type = " . CONFIRM_REG; $result = $db->sql_query($sql); + $row = $db->sql_fetchrow($result); + $db->sql_freeresult($result); - if ($row = $db->sql_fetchrow($result)) + if ($row) { if (strcasecmp($row['code'], $confirm_code) === 0) { @@ -177,7 +179,6 @@ class ucp_register $error[] = $user->lang['CONFIRM_CODE_WRONG']; $wrong_confirm = true; } - $db->sql_freeresult($result); } } @@ -193,7 +194,7 @@ class ucp_register $error[] = $user->lang['NEW_EMAIL_ERROR']; } } - + if (!sizeof($error)) { $server_url = generate_board_url(); @@ -208,12 +209,13 @@ class ucp_register WHERE group_name = '" . $db->sql_escape($group_name) . "' AND group_type = " . GROUP_SPECIAL; $result = $db->sql_query($sql); + $row = $db->sql_fetchrow($result); + $db->sql_freeresult($result); - if (!($row = $db->sql_fetchrow($result))) + if (!$row) { - trigger_error($user->lang['NO_GROUP']); + trigger_error('NO_GROUP'); } - $db->sql_freeresult($result); $group_id = $row['group_id']; @@ -223,7 +225,7 @@ class ucp_register { $user_actkey = gen_rand_string(10); $key_len = 54 - (strlen($server_url)); - $key_len = ($key_len > 6) ? $key_len : 6; + $key_len = ($key_len < 6) ? 6 : $key_len; $user_actkey = substr($user_actkey, 0, $key_len); $user_type = USER_INACTIVE; } @@ -233,80 +235,21 @@ class ucp_register $user_actkey = ''; } - // Begin transaction ... should this screw up we can rollback - $db->sql_transaction('begin'); - - $sql_ary = array( - 'username' => $username, - 'user_permissions' => '', - 'user_password' => md5($new_password), - 'user_email' => $email, - 'user_email_hash' => (int) crc32(strtolower($email)) . strlen($email), - 'group_id' => (int) $group_id, - 'user_timezone' => (float) $tz, - 'user_dateformat' => $config['default_dateformat'], - 'user_lang' => $lang, - 'user_style' => $config['default_style'], - 'user_allow_pm' => 1, - 'user_type' => $user_type, - 'user_actkey' => $user_actkey, - 'user_ip' => $user->ip, - 'user_regdate' => time(), - - 'user_lastmark' => time(), - 'user_lastvisit' => 0, - 'user_lastpost_time' => 0, - 'user_lastpage' => '', - 'user_posts' => 0, - 'user_dst' => 0, - 'user_colour' => '', - 'user_avatar' => '', - 'user_avatar_type' => 0, - 'user_avatar_width' => 0, - 'user_avatar_height' => 0, - 'user_new_privmsg' => 0, - 'user_unread_privmsg' => 0, - 'user_last_privmsg' => 0, - 'user_message_rules' => 0, - 'user_full_folder' => PRIVMSGS_NO_BOX, - 'user_emailtime' => 0, - - 'user_notify' => 0, - 'user_notify_pm' => 1, - 'user_notify_type' => NOTIFY_EMAIL, - 'user_allow_pm' => 1, - 'user_allow_email' => 1, - 'user_allow_viewonline' => 1, - 'user_allow_viewemail' => 1, - 'user_allow_massemail' => 1, - - 'user_sig' => '', - 'user_sig_bbcode_uid' => '', - 'user_sig_bbcode_bitfield' => 0, - ); - - $sql = 'INSERT INTO ' . USERS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary); - $db->sql_query($sql); - - $user_id = $db->sql_nextid(); - - // Insert Custom Profile Fields - if (sizeof($cp_data)) - { - $cp_data['user_id'] = (int) $user_id; - $sql = 'INSERT INTO ' . PROFILE_FIELDS_DATA_TABLE . ' ' . $db->sql_build_array('INSERT', $cp->build_insert_sql_array($cp_data)); - $db->sql_query($sql); - } - - // Place into appropriate group, either REGISTERED(_COPPA) or INACTIVE(_COPPA) depending on config - $sql = 'INSERT INTO ' . USER_GROUP_TABLE . ' ' . $db->sql_build_array('INSERT', array( - 'user_id' => (int) $user_id, + $user_row = array( + 'username' => $username, + 'user_password' => md5($new_password), + 'user_email' => $email, 'group_id' => (int) $group_id, - 'user_pending' => 0) + 'user_timezone' => (float) $tz, + 'user_lang' => $lang, + 'user_type' => $user_type, + 'user_actkey' => $user_actkey, + 'user_ip' => $user->ip, + 'user_regdate' => time(), ); - $db->sql_query($sql); - $db->sql_transaction('commit'); + // Register user... + $user_id = user_add($user_row, $cp_data); if ($coppa && $config['email_enable']) { @@ -331,7 +274,7 @@ class ucp_register if ($config['email_enable']) { - include_once($phpbb_root_path . 'includes/functions_messenger.'.$phpEx); + include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx); $messenger = new messenger(false); @@ -360,7 +303,7 @@ class ucp_register $messenger->assign_vars(array( 'FAX_INFO' => $config['coppa_fax'], 'MAIL_INFO' => $config['coppa_mail'], - 'EMAIL_ADDRESS' => $email, + 'EMAIL_ADDRESS' => $email, 'SITENAME' => $config['sitename']) ); } @@ -369,8 +312,7 @@ class ucp_register if ($config['require_activation'] == USER_ACTIVATION_ADMIN) { - // Grab an array of user_id's with a_user permissions ... these users - // can activate a user + // Grab an array of user_id's with a_user permissions ... these users can activate a user $admin_ary = $auth->acl_get_list(false, 'a_user', false); $sql = 'SELECT user_id, username, user_email, user_lang, user_jabber, user_notify_type @@ -412,12 +354,13 @@ class ucp_register } $s_hidden_fields = build_hidden_fields(array( - 'agreed' => 'true', - 'coppa' => $coppa, + 'agreed' => 'true', + 'coppa' => $coppa, 'change_lang' => 0) ); $confirm_image = ''; + // Visual Confirmation - Show images if ($config['enable_confirm']) { @@ -448,16 +391,14 @@ class ucp_register WHERE session_id = '" . $db->sql_escape($user->session_id) . "' AND confirm_type = " . CONFIRM_REG; $result = $db->sql_query($sql); + $attempts = (int) $db->sql_fetchfield('attempts'); + $db->sql_freeresult($result); - if ($row = $db->sql_fetchrow($result)) + if ($config['max_reg_attempts'] && $attempts > $config['max_reg_attempts']) { - if ($config['max_reg_attempts'] && $row['attempts'] >= $config['max_reg_attempts']) - { - trigger_error($user->lang['TOO_MANY_REGISTERS']); - } + trigger_error($user->lang['TOO_MANY_REGISTERS']); } - $db->sql_freeresult($result); - + $code = gen_rand_string(mt_rand(5, 8)); $confirm_id = md5(unique_id($user->ip)); @@ -480,11 +421,11 @@ class ucp_register { case USER_ACTIVATION_SELF: $l_reg_cond = $user->lang['UCP_EMAIL_ACTIVATE']; - break; + break; case USER_ACTIVATION_ADMIN: $l_reg_cond = $user->lang['UCP_ADMIN_ACTIVATE']; - break; + break; } $user_char_ary = array('.*' => 'USERNAME_CHARS_ANY', '[\w]+' => 'USERNAME_ALPHA_ONLY', '[\w_\+\. \-\[\]]+' => 'USERNAME_ALPHA_SPACERS'); @@ -502,10 +443,10 @@ class ucp_register 'EMAIL_CONFIRM' => (isset($email_confirm)) ? $email_confirm : '', 'CONFIRM_IMG' => $confirm_image, - 'L_CONFIRM_EXPLAIN' => sprintf($user->lang['CONFIRM_EXPLAIN'], '<a href="mailto:' . htmlentities($config['board_contact']) . '">', '</a>'), - 'L_ITEMS_REQUIRED' => $l_reg_cond, - 'L_USERNAME_EXPLAIN' => sprintf($user->lang[$user_char_ary[str_replace('\\\\', '\\', $config['allow_name_chars'])] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']), - 'L_NEW_PASSWORD_EXPLAIN'=> sprintf($user->lang['NEW_PASSWORD_EXPLAIN'], $config['min_pass_chars'], $config['max_pass_chars']), + 'L_CONFIRM_EXPLAIN' => sprintf($user->lang['CONFIRM_EXPLAIN'], '<a href="mailto:' . htmlentities($config['board_contact']) . '">', '</a>'), + 'L_ITEMS_REQUIRED' => $l_reg_cond, + 'L_USERNAME_EXPLAIN' => sprintf($user->lang[$user_char_ary[str_replace('\\\\', '\\', $config['allow_name_chars'])] . '_EXPLAIN'], $config['min_name_chars'], $config['max_name_chars']), + 'L_NEW_PASSWORD_EXPLAIN' => sprintf($user->lang['NEW_PASSWORD_EXPLAIN'], $config['min_pass_chars'], $config['max_pass_chars']), 'S_LANG_OPTIONS' => language_select($lang), 'S_TZ_OPTIONS' => tz_select($tz), diff --git a/phpBB/includes/ucp/ucp_remind.php b/phpBB/includes/ucp/ucp_remind.php index 018c7b7105..0bdfb685a3 100644 --- a/phpBB/includes/ucp/ucp_remind.php +++ b/phpBB/includes/ucp/ucp_remind.php @@ -19,86 +19,80 @@ class ucp_remind function main($id, $mode) { - global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx; + global $config, $phpbb_root_path, $phpEx; + global $db, $user, $auth, $template; - $submit = (isset($_POST['submit'])) ? true : false; + $username = request_var('username', '', true); + $email = request_var('email', ''); + $submit = (isset($_POST['submit'])) ? true : false; if ($submit) { - $username = request_var('username', '', true); - $email = request_var('email', ''); - $sql = 'SELECT user_id, username, user_email, user_jabber, user_notify_type, user_type, user_lang FROM ' . USERS_TABLE . " WHERE user_email = '" . $db->sql_escape($email) . "' - AND username = '" . $db->sql_escape($username) . "'"; + AND LOWER(username) = '" . $db->sql_escape(strtolower($username)) . "'"; $result = $db->sql_query($sql); + $user_row = $db->sql_fetchrow($result); + $db->sql_freeresult($result); - if (!($row = $db->sql_fetchrow($result))) + if (!$user_row) { trigger_error('NO_EMAIL_USER'); } - $db->sql_freeresult($result); - if ($row['user_type'] == USER_INACTIVE) + if ($user_row['user_type'] == USER_INACTIVE) { trigger_error('ACCOUNT_NOT_ACTIVATED'); } $server_url = generate_board_url(); - $username = $row['username']; - $user_id = $row['user_id']; $key_len = 54 - strlen($server_url); - $key_len = ($key_len > 6) ? $key_len : 6; + $key_len = ($key_len < 6) ? 6 : $key_len; $user_actkey = substr(gen_rand_string(10), 0, $key_len); $user_password = gen_rand_string(8); $sql = 'UPDATE ' . USERS_TABLE . " SET user_newpasswd = '" . $db->sql_escape(md5($user_password)) . "', user_actkey = '" . $db->sql_escape($user_actkey) . "' - WHERE user_id = " . $row['user_id']; + WHERE user_id = " . $user_row['user_id']; $db->sql_query($sql); - include_once($phpbb_root_path . 'includes/functions_messenger.'.$phpEx); + include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx); - $messenger = new messenger(); + $messenger = new messenger(false); $messenger->template('user_activate_passwd', $row['user_lang']); $messenger->replyto($user->data['user_email']); - $messenger->to($row['user_email'], $row['username']); - $messenger->im($row['user_jabber'], $row['username']); + $messenger->to($user_row['user_email'], $user_row['username']); + $messenger->im($user_row['user_jabber'], $user_row['username']); $messenger->assign_vars(array( 'SITENAME' => $config['sitename'], - 'USERNAME' => html_entity_decode($username), + 'USERNAME' => html_entity_decode($user_row['username']), 'PASSWORD' => html_entity_decode($user_password), 'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $config['board_email_sig']), - 'U_ACTIVATE' => "$server_url/ucp.$phpEx?mode=activate&u=$user_id&k=$user_actkey") + 'U_ACTIVATE' => "$server_url/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k=$user_actkey") ); - $messenger->send($row['user_notify_type']); - $messenger->save_queue(); - + $messenger->send($user_row['user_notify_type']); meta_refresh(3, append_sid("{$phpbb_root_path}index.$phpEx")); $message = $user->lang['PASSWORD_UPDATED'] . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>'); trigger_error($message); } - else - { - $username = $email = ''; - } $template->assign_vars(array( - 'USERNAME' => $username, - 'EMAIL' => $email) + 'USERNAME' => $username, + 'EMAIL' => $email, + 'S_PROFILE_ACTION' => append_sid($phpbb_root_path . 'ucp.' . $phpEx, 'mode=sendpassword')) ); $this->tpl_name = 'ucp_remind'; } } -?> +?>
\ No newline at end of file diff --git a/phpBB/includes/ucp/ucp_resend.php b/phpBB/includes/ucp/ucp_resend.php index a18eb14e0d..51dd2ea4f2 100644 --- a/phpBB/includes/ucp/ucp_resend.php +++ b/phpBB/includes/ucp/ucp_resend.php @@ -19,61 +19,57 @@ class ucp_resend function main($id, $mode) { - global $config, $db, $user, $auth, $template, $phpbb_root_path, $phpEx; + global $config, $phpbb_root_path, $phpEx; + global $db, $user, $auth, $template; - $submit = (isset($_POST['submit'])) ? true : false; + $username = request_var('username', '', true); + $email = request_var('email', ''); + $submit = (isset($_POST['submit'])) ? true : false; if ($submit) { - $username = request_var('username', '', true); - $email = request_var('email', ''); - - $sql = 'SELECT user_id, username, user_email, user_type, user_lang, user_actkey + $sql = 'SELECT user_id, group_id, username, user_email, user_type, user_lang, user_actkey FROM ' . USERS_TABLE . " WHERE user_email = '" . $db->sql_escape($email) . "' - AND username = '" . $db->sql_escape($username) . "'"; + AND LOWER(username) = '" . $db->sql_escape(strtolower($username)) . "'"; $result = $db->sql_query($sql); + $user_row = $db->sql_fetchrow($result); + $db->sql_freeresult($result); - if (!($row = $db->sql_fetchrow($result))) + if (!$user_row) { trigger_error('NO_EMAIL_USER'); } - $db->sql_freeresult($result); - if (!$row['user_actkey']) + if (!$user_row['user_actkey']) { trigger_error('ACCOUNT_ALREADY_ACTIVATED'); } - $server_url = generate_board_url(); - $username = $row['username']; - $user_id = $row['user_id']; + // Determine coppa status on group (INACTIVE(_COPPA)) + $sql = 'SELECT group_name, group_type + FROM ' . GROUPS_TABLE . ' + WHERE group_id = ' . $user_row['group_id']; + $result = $db->sql_query($sql); + $row = $db->sql_fetchrow($result); + $db->sql_freeresult($result); -/* if ($coppa) - { - $email_template = 'coppa_welcome_inactive'; - }*/ -/* - if ($config['require_activation'] == USER_ACTIVATION_ADMIN) - { - $email_template = 'admin_welcome_inactive'; - } - else + if (!$row) { - $email_template = 'user_welcome_inactive'; + trigger_error('NO_GROUP'); } -*/ - include_once($phpbb_root_path . 'includes/functions_messenger.'.$phpEx); + $coppa = ($row['group_name'] == 'INACTIVE_COPPA' && $row['group_type'] == GROUP_SPECIAL) ? true : false; + include_once($phpbb_root_path . 'includes/functions_messenger.' . $phpEx); $messenger = new messenger(false); if ($config['require_activation'] == USER_ACTIVATION_SELF || $coppa) { - $messenger->template('user_resend_inactive', $row['user_lang']); + $messenger->template(($coppa) ? 'coppa_resend_inactive' : 'user_resend_inactive', $user_row['user_lang']); $messenger->replyto($config['board_contact']); - $messenger->to($row['user_email'], $row['username']); + $messenger->to($user_row['user_email'], $user_row['username']); $messenger->headers('X-AntiAbuse: Board servername - ' . $config['server_name']); $messenger->headers('X-AntiAbuse: User_id - ' . $user->data['user_id']); @@ -83,10 +79,10 @@ class ucp_resend $messenger->assign_vars(array( 'SITENAME' => $config['sitename'], 'WELCOME_MSG' => sprintf($user->lang['WELCOME_SUBJECT'], $config['sitename']), - 'USERNAME' => html_entity_decode($row['username']), + 'USERNAME' => html_entity_decode($user_row['username']), 'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $config['board_email_sig']), - 'U_ACTIVATE' => "$server_url/ucp.$phpEx?mode=activate&u={$row['user_id']}&k={$row['user_actkey']}") + 'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k={$user_row['user_actkey']}") ); if ($coppa) @@ -94,7 +90,7 @@ class ucp_resend $messenger->assign_vars(array( 'FAX_INFO' => $config['coppa_fax'], 'MAIL_INFO' => $config['coppa_mail'], - 'EMAIL_ADDRESS' => $row['user_email'], + 'EMAIL_ADDRESS' => $user_row['user_email'], 'SITENAME' => $config['sitename']) ); } @@ -104,8 +100,7 @@ class ucp_resend if ($config['require_activation'] == USER_ACTIVATION_ADMIN) { - // Grab an array of user_id's with a_user permissions ... these users - // can activate a user + // Grab an array of user_id's with a_user permissions ... these users can activate a user $admin_ary = $auth->acl_get_list(false, 'a_user', false); $sql = 'SELECT user_id, username, user_email, user_lang, user_jabber, user_notify_type @@ -121,10 +116,10 @@ class ucp_resend $messenger->im($row['user_jabber'], $row['username']); $messenger->assign_vars(array( - 'USERNAME' => html_entity_decode($row['username']), + 'USERNAME' => html_entity_decode($user_row['username']), 'EMAIL_SIG' => str_replace('<br />', "\n", "-- \n" . $config['board_email_sig']), - 'U_ACTIVATE' => "$server_url/ucp.$phpEx?mode=activate&u={$row['user_id']}&k={$row['user_actkey']}") + 'U_ACTIVATE' => generate_board_url() . "/ucp.$phpEx?mode=activate&u={$user_row['user_id']}&k={$user_row['user_actkey']}") ); $messenger->send($row['user_notify_type']); @@ -137,18 +132,15 @@ class ucp_resend $message = $user->lang['ACTIVATION_EMAIL_SENT'] . '<br /><br />' . sprintf($user->lang['RETURN_INDEX'], '<a href="' . append_sid("{$phpbb_root_path}index.$phpEx") . '">', '</a>'); trigger_error($message); } - else - { - $username = $email = ''; - } $template->assign_vars(array( - 'USERNAME' => $username, - 'EMAIL' => $email) + 'USERNAME' => $username, + 'EMAIL' => $email, + 'S_PROFILE_ACTION' => append_sid($phpbb_root_path . 'ucp.' . $phpEx, 'mode=resend_act')) ); $this->tpl_name = 'ucp_resend'; } } -?> +?>
\ No newline at end of file |
