diff --git a/phpBB/includes/acp/acp_users.php b/phpBB/includes/acp/acp_users.php index 5f633b0dfd..89038ff2e6 100644 --- a/phpBB/includes/acp/acp_users.php +++ b/phpBB/includes/acp/acp_users.php @@ -1057,7 +1057,7 @@ class acp_users $var_ary = array( 'dateformat' => array('string', false, 3, 30), 'lang' => array('match', false, '#^[a-z_]{2,}$#i'), - 'tz' => array('num', false, -13, 13), + 'tz' => array('num', false, -14, 14), 'topic_sk' => array('string', false, 1, 1), 'topic_sd' => array('string', false, 1, 1), diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index da93b4e403..0a6bf8d126 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -544,8 +544,10 @@ function watch_topic_forum($mode, &$s_watching, &$s_watching_img, $user_id, $mat /** * Marks a topic/forum as read * Marks a topic as posted to +* +* @param int $user_id can only be used with $mode == 'post' */ -function markread($mode, $forum_id = false, $topic_id = false, $post_time = 0) +function markread($mode, $forum_id = false, $topic_id = false, $post_time = 0, $user_id = 0) { global $db, $user, $config; @@ -786,7 +788,7 @@ function markread($mode, $forum_id = false, $topic_id = false, $post_time = 0) $db->sql_return_on_error(true); $sql_ary = array( - 'user_id' => $user->data['user_id'], + 'user_id' => (!$user_id) ? $user->data['user_id'] : $user_id, 'topic_id' => $topic_id, 'topic_posted' => 1 ); diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php index 0c259924d6..261cbe3f45 100644 --- a/phpBB/includes/functions_admin.php +++ b/phpBB/includes/functions_admin.php @@ -918,11 +918,15 @@ function sync($mode, $where_type = '', $where_ids = '', $resync_parents = false, } else { + // Do not sync the "global forum" + $where_ids = array_diff($where_ids, array(0)); + if (!sizeof($where_ids)) { // Empty array with IDs. This means that we don't have any work to do. Just return. return; } + // Limit the topics/forums we are syncing, use specific topic/forum IDs. // $where_type contains the field for the where clause (forum_id, topic_id) $where_sql = 'WHERE ' . $mode{0} . ".$where_type IN (" . implode(', ', $where_ids) . ')'; diff --git a/phpBB/includes/mcp/mcp_front.php b/phpBB/includes/mcp/mcp_front.php index 67f0885caf..653af87a45 100644 --- a/phpBB/includes/mcp/mcp_front.php +++ b/phpBB/includes/mcp/mcp_front.php @@ -115,6 +115,7 @@ function mcp_front_view($id, $mode, $action) $sql = 'SELECT COUNT(r.report_id) AS total FROM ' . REPORTS_TABLE . ' r, ' . POSTS_TABLE . ' p WHERE r.post_id = p.post_id + AND r.report_closed = 0 AND p.forum_id IN (0, ' . implode(', ', $forum_list) . ')'; $result = $db->sql_query($sql); $row = $db->sql_fetchrow($result); @@ -126,6 +127,7 @@ function mcp_front_view($id, $mode, $action) FROM (' . REPORTS_TABLE . ' r, ' . REASONS_TABLE . ' rr,' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t, ' . USERS_TABLE . ' u) LEFT JOIN ' . FORUMS_TABLE . ' f ON (f.forum_id = p.forum_id) WHERE r.post_id = p.post_id + AND r.report_closed = 0 AND r.reason_id = rr.reason_id AND p.topic_id = t.topic_id AND r.user_id = u.user_id diff --git a/phpBB/includes/mcp/mcp_main.php b/phpBB/includes/mcp/mcp_main.php index 9513bc96f8..5b7433a6a3 100644 --- a/phpBB/includes/mcp/mcp_main.php +++ b/phpBB/includes/mcp/mcp_main.php @@ -170,7 +170,14 @@ class mcp_main mcp_post_details($id, $mode, $action); - $this->tpl_name = 'mcp_post'; + if ($action == 'whois') + { + $this->tpl_name = 'mcp_whois'; + } + else + { + $this->tpl_name = 'mcp_post'; + } break; default: @@ -868,6 +875,9 @@ function mcp_fork_topic($topic_ids) $db->sql_query('INSERT INTO ' . POSTS_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary)); $new_post_id = $db->sql_nextid(); + // Copy whether the topic is dotted + markread('post', $to_forum_id, $new_topic_id, 0, $row['poster_id']); + // Copy Attachments if ($row['post_attachment']) { diff --git a/phpBB/includes/mcp/mcp_post.php b/phpBB/includes/mcp/mcp_post.php index 5dfb5947f9..3880f036a8 100644 --- a/phpBB/includes/mcp/mcp_post.php +++ b/phpBB/includes/mcp/mcp_post.php @@ -34,6 +34,22 @@ function mcp_post_details($id, $mode, $action) switch ($action) { + case 'whois': + $ip = request_var('ip', ''); + include($phpbb_root_path . 'includes/functions_user.' . $phpEx); + + $whois = user_ipwhois($ip); + + $whois = preg_replace('#(\s)([\w\-\._\+]+@[\w\-\.]+)(\s)#', '\1\2\3', $whois); + $whois = preg_replace('#(\s)(http:/{2}[^\s]*)(\s)#', '\1\2\3', $whois); + + $template->assign_vars(array( + 'RETURN_POST' => sprintf($user->lang['RETURN_POST'], "", ''), + 'WHOIS' => trim($whois)) + ); + // We're done with the whois page so return + return; + case 'chgposter': $username = request_var('username', ''); @@ -249,7 +265,7 @@ function mcp_post_details($id, $mode, $action) 'L_POST_S' => ($row['postings'] == 1) ? $user->lang['POST'] : $user->lang['POSTS'], 'U_LOOKUP_IP' => ($rdns_ip_num == $row['poster_ip'] || $rdns_ip_num == 'all') ? '' : "$url&i=$id&mode=post_details&rdns={$row['poster_ip']}#ip", - 'U_WHOIS' => "{$phpbb_root_path}mcp.$phpEx$SID&i=$id&mode=whois&ip={$row['poster_ip']}") + 'U_WHOIS' => "{$phpbb_root_path}mcp.$phpEx$SID&i=$id&mode=$mode&action=whois&p=$post_id&ip={$row['poster_ip']}") ); } $db->sql_freeresult($result); diff --git a/phpBB/includes/ucp/ucp_prefs.php b/phpBB/includes/ucp/ucp_prefs.php index 8bddeee325..580dced38e 100644 --- a/phpBB/includes/ucp/ucp_prefs.php +++ b/phpBB/includes/ucp/ucp_prefs.php @@ -52,7 +52,7 @@ class ucp_prefs $var_ary = array( 'dateformat' => array('string', false, 3, 30), 'lang' => array('match', false, '#^[a-z_]{2,}$#i'), - 'tz' => array('num', false, -13, 13), + 'tz' => array('num', false, -14, 14), ); $error = validate_data($data, $var_ary); diff --git a/phpBB/includes/ucp/ucp_register.php b/phpBB/includes/ucp/ucp_register.php index b471e1a79c..5970ac4d99 100644 --- a/phpBB/includes/ucp/ucp_register.php +++ b/phpBB/includes/ucp/ucp_register.php @@ -122,7 +122,7 @@ class ucp_register array('email')), 'email_confirm' => array('string', false, 6, 60), 'confirm_code' => array('string', !$config['enable_confirm'], 5, 8), - 'tz' => array('num', false, -13, 13), + 'tz' => array('num', false, -14, 14), 'lang' => array('match', false, '#^[a-z_]{2,}$#i'), ); diff --git a/phpBB/language/en/common.php b/phpBB/language/en/common.php index 55cd584bb1..72907c97cb 100644 --- a/phpBB/language/en/common.php +++ b/phpBB/language/en/common.php @@ -283,7 +283,8 @@ $lang = array_merge($lang, array( 'NEXT' => 'Next', 'NO' => 'No', 'NONE' => 'None', - 'NOT_WATCHING_FORUM' => 'You no subscribe to updates on this forum', + 'NOT_AUTHORIZED' => 'You are not authorized to access this area.', + 'NOT_WATCHING_FORUM' => 'You are no longer subscribed to updates on this forum.', 'NOT_WATCHING_TOPIC' => 'You are no longer subscribed to this topic.', 'NO_AUTH_ADMIN' => 'You do not have admin permissions and therefore not allowed to access the administration control panel.', 'NO_AUTH_ADMIN_USER_DIFFER' => 'You are not able to re-authenticate as a different user.', @@ -404,6 +405,7 @@ $lang = array_merge($lang, array( 'SELECT_FORUM' => 'Select a forum', 'SEND_EMAIL' => 'Email', 'SEND_PRIVATE_MESSAGE' => 'Send private message', + 'SETTINGS' => 'Settings', 'SIGNATURE' => 'Signature', 'SKIP' => 'Skip to content', 'SORRY_AUTH_READ' => 'You are not authorized to read this forum', @@ -565,37 +567,45 @@ $lang = array_merge($lang, array( ), 'tz' => array( - '-12' => 'GMT - 12 Hours', - '-11' => 'GMT - 11 Hours', - '-10' => 'GMT - 10 Hours', - '-9' => 'GMT - 9 Hours', - '-8' => 'GMT - 8 Hours', - '-7' => 'GMT - 7 Hours', - '-6' => 'GMT - 6 Hours', - '-5' => 'GMT - 5 Hours', - '-4' => 'GMT - 4 Hours', - '-3.5' => 'GMT - 3.5 Hours', - '-3' => 'GMT - 3 Hours', - '-2' => 'GMT - 2 Hours', - '-1' => 'GMT - 1 Hour', + '-12' => 'GMT - 12 hours', + '-11' => 'GMT - 11 hours', + '-10' => 'GMT - 10 hours', + '-9.5' => 'GMT - 9:30 hours', + '-9' => 'GMT - 9 hours', + '-8' => 'GMT - 8 hours', + '-7' => 'GMT - 7 hours', + '-6' => 'GMT - 6 hours', + '-5' => 'GMT - 5 hours', + '-4' => 'GMT - 4 hours', + '-3.5' => 'GMT - 3:30 hours', + '-3' => 'GMT - 3 hours', + '-2' => 'GMT - 2 hours', + '-1' => 'GMT - 1 hour', '0' => 'GMT', - '1' => 'GMT + 1 Hour', - '2' => 'GMT + 2 Hours', - '3' => 'GMT + 3 Hours', - '3.5' => 'GMT + 3.5 Hours', - '4' => 'GMT + 4 Hours', - '4.5' => 'GMT + 4.5 Hours', - '5' => 'GMT + 5 Hours', - '5.5' => 'GMT + 5.5 Hours', - '6' => 'GMT + 6 Hours', - '6.5' => 'GMT + 6.5 Hours', - '7' => 'GMT + 7 Hours', - '8' => 'GMT + 8 Hours', - '9' => 'GMT + 9 Hours', - '9.5' => 'GMT + 9.5 Hours', - '10' => 'GMT + 10 Hours', - '11' => 'GMT + 11 Hours', - '12' => 'GMT + 12 Hours', + '1' => 'GMT + 1 hour', + '2' => 'GMT + 2 hours', + '3' => 'GMT + 3 hours', + '3.5' => 'GMT + 3:30 hours', + '4' => 'GMT + 4 hours', + '4.5' => 'GMT + 4:30 hours', + '5' => 'GMT + 5 hours', + '5.5' => 'GMT + 5:30 hours', + '5.75' => 'GMT + 5:45 hours', + '6' => 'GMT + 6 hours', + '6.5' => 'GMT + 6:30 hours', + '7' => 'GMT + 7 hours', + '8' => 'GMT + 8 hours', + '8.75' => 'GMT + 8:45 hours', + '9' => 'GMT + 9 hours', + '9.5' => 'GMT + 9:30 hours', + '10' => 'GMT + 10 hours', + '10.5' => 'GMT + 10:30 hours', + '11' => 'GMT + 11 hours', + '11.5' => 'GMT + 11:30 hours', + '12' => 'GMT + 12 hours', + '12.75' => 'GMT + 12:45 hours', + '13' => 'GMT + 13 hours', + '14' => 'GMT + 14 hours', 'dst' => '[ DST ]', ), @@ -603,13 +613,14 @@ $lang = array_merge($lang, array( '-12' => '[GMT-12] Eniwetok, Kwaialein', '-11' => '[GMT-11] Midway Island, Samoa', '-10' => '[GMT-10] Hawaii, Honolulu', + '-9.5' => '[GMT-9:30] Marquesas Is.', '-9' => '[GMT-9] Alaska, Anchorage', '-8' => '[GMT-8] Los Angeles, San Francisco, Seattle', '-7' => '[GMT-7] Denver, Edmonton, Phoenix, Salt Lake City, Santa Fe', '-6' => '[GMT-6] Chicago, Guatemala, Mexico City, Saskatchewan East', '-5' => '[GMT-5] Bogota, Kingston, Lima, New York', '-4' => '[GMT-4] Caracas, Labrador, La Paz, Maritimes, Santiago', - '-3.5' => '[GMT-3.5] Standard Time [Canada], Newfoundland', + '-3.5' => '[GMT-3:30] Standard Time [Canada], Newfoundland', '-3' => '[GMT-3] Brazilia, Buenos Aires, Georgetown, Rio de Janero', '-2' => '[GMT-2] Mid-Atlantic', '-1' => '[GMT-1] Azores, Cape Verde Is.', @@ -617,20 +628,27 @@ $lang = array_merge($lang, array( '1' => '[GMT+1] Amsterdam, Berlin, Bern, Brussells, Madrid, Paris, Rome, Oslo, Vienna', '2' => '[GMT+2] Athens, Bucharest, Harare, Helsinki, Israel, Istanbul', '3' => '[GMT+3] Ankara, Baghdad, Bahrain, Beruit, Kuwait, Moscow, Nairobi, Riyadh', - '3.5' => '[GMT+3.5] Iran', + '3.5' => '[GMT+3:30] Iran', '4' => '[GMT+4] Abu Dhabi, Kabul, Muscat, Tbilisi, Volgograd', - '4.5' => '[GMT+4.5] Afghanistan', + '4.5' => '[GMT+4:30] Afghanistan', '5' => '[GMT+5] Pakistan', - '5.5' => '[GMT+5.5] Calcutta, India, Madras, New Dehli', - '6' => '[GMT+6] Almaty, Dhakar, Kathmandu', - '6.5' => '[GMT+6.5] Rangoon', + '5.5' => '[GMT+5:30] Calcutta, India, Madras, New Dehli', + '5.75' => '[GMT+5:45] Kathmandu, Nepal', + '6' => '[GMT+6] Almaty, Dhakar, Sri Lanka', + '6.5' => '[GMT+6:30] Rangoon', '7' => '[GMT+7] Bangkok, Hanoi, Jakarta, Phnom Penh', '8' => '[GMT+8] Beijing, Hong Kong, Kuala Lumpar, Manila, Perth, Singapore, Taipei', + '8.75' => '[GMT+8:45] Caiguna, Eucla', '9' => '[GMT+9] Osaka, Sapporo, Seoul, Tokyo, Yakutsk', - '9.5' => '[GMT+9.5] Adelaide, Darwin', + '9.5' => '[GMT+9:30] Adelaide, Darwin', '10' => '[GMT+10] Brisbane, Canberra, Guam, Hobart, Melbourne, Port Moresby, Sydney', + '10.5' => '[GMT+10:30] Lord Howe Is.', '11' => '[GMT+11] Magadan, New Caledonia, Solomon Is.', - '12' => '[GMT+12] Auckland, Fiji, Kamchatka, Marshall Is., Suva, Wellington' + '11.5' => '[GMT+11:30] Norfolk Is.', + '12' => '[GMT+12] Auckland, Fiji, Kamchatka, Marshall Is., Suva, Wellington', + '12.75' => '[GMT+12:45] Chatham Is.', + '13' => '[GMT+13] Tonga, Phoenix Is.', + '14' => '[GMT+14] Line Is.', ), // The value is only an example and will get replaced by the current time on view diff --git a/phpBB/language/en/mcp.php b/phpBB/language/en/mcp.php index 854a472133..5ab9bacfd5 100644 --- a/phpBB/language/en/mcp.php +++ b/phpBB/language/en/mcp.php @@ -265,6 +265,7 @@ $lang = array_merge($lang, array( 'RETURN_MESSAGE' => 'Click %sHere%s to return to the message', 'RETURN_NEW_FORUM' => 'Click %sHere%s to return to the new forum', 'RETURN_NEW_TOPIC' => 'Click %sHere%s to return to the new topic', + 'RETURN_POST' => 'Click %sHere%s to return to the post', 'RETURN_QUEUE' => 'Click %sHere%s to return to the queue', 'RETURN_REPORTS' => 'Click %sHere%s to return to the reports', diff --git a/phpBB/language/en/memberlist.php b/phpBB/language/en/memberlist.php index a5fccc50f2..13eb24ff38 100644 --- a/phpBB/language/en/memberlist.php +++ b/phpBB/language/en/memberlist.php @@ -67,8 +67,8 @@ $lang = array_merge($lang, array( 'IM_AIM' => 'Please note that you need AOL Instant Messenger installed to use this.', 'IM_AIM_EXPRESS' => 'AIM Express', 'IM_DOWNLOAD_APP' => 'Download Application', - 'IM_ICQ' => 'Please note that users may have elected to not receive unsolicited instant messages.', - 'IM_JABBER' => 'Please note that users may have elected to not receive unsolicited instant messages.', + 'IM_ICQ' => 'Please note that users may have selected to not receive unsolicited instant messages.', + 'IM_JABBER' => 'Please note that users may have selected to not receive unsolicited instant messages.', 'IM_JABBER_SUBJECT' => 'This is an automated message please do not reply! Message from user %1$s at %2$s', 'IM_MESSAGE' => 'Your Message', 'IM_MSNM' => 'Please note that you need Windows Messenger installed to use this.', @@ -86,6 +86,7 @@ $lang = array_merge($lang, array( 'LESS_THAN' => 'Less than', 'LIST_USER' => '1 User', 'LIST_USERS' => '%d Users', + 'LOGIN_EXPLAIN_VIEWPROFILE' => 'The board administrator requires you to be registered and logged in to view profiles.', 'MORE_THAN' => 'More than', 'MSNM' => 'MSNM', diff --git a/phpBB/language/en/ucp.php b/phpBB/language/en/ucp.php index c36e39042a..eb1ad6d45b 100644 --- a/phpBB/language/en/ucp.php +++ b/phpBB/language/en/ucp.php @@ -343,7 +343,7 @@ $lang = array_merge($lang, array( 'UCP' => 'User Control Panel', 'UCP_ACTIVATE' => 'Activate account', - 'UCP_ADMIN_ACTIVATE' => 'Please note that you will need to enter a valid email address before your account is activated. The administrator will review your account and if approved you will an email at the address you specified.', + 'UCP_ADMIN_ACTIVATE' => 'Please note that you will need to enter a valid email address before your account is activated. The administrator will review your account and if approved you will receive an email at the address you specified.', 'UCP_AIM' => 'AOL Instant Messenger', 'UCP_ATTACHMENTS' => 'Attachments', 'UCP_COPPA_BEFORE' => 'Before %s', diff --git a/phpBB/styles/subSilver/template/editor.js b/phpBB/styles/subSilver/template/editor.js index bbc89abcfb..5c7b6e4e29 100644 --- a/phpBB/styles/subSilver/template/editor.js +++ b/phpBB/styles/subSilver/template/editor.js @@ -323,6 +323,7 @@ function mozWrap(txtarea, open, close) var selLength = txtarea.textLength; var selStart = txtarea.selectionStart; var selEnd = txtarea.selectionEnd; + var scrollTop = txtarea.scrollTop; if (selEnd == 1 || selEnd == 2) selEnd = selLength; @@ -330,6 +331,10 @@ function mozWrap(txtarea, open, close) var s2 = (txtarea.value).substring(selStart, selEnd) var s3 = (txtarea.value).substring(selEnd, selLength); txtarea.value = s1 + open + s2 + close + s3; + txtarea.selectionStart = selEnd + open.length + close.length; + txtarea.selectionEnd = txtarea.selectionStart; + txtarea.focus(); + txtarea.scrollTop = scrollTop; return; } diff --git a/phpBB/styles/subSilver/template/index_body.html b/phpBB/styles/subSilver/template/index_body.html index 1c887edaa9..347f85d505 100644 --- a/phpBB/styles/subSilver/template/index_body.html +++ b/phpBB/styles/subSilver/template/index_body.html @@ -146,14 +146,14 @@

{L_LOGIN_LOGOUT}

- {L_USERNAME}:   {L_PASSWORD}:   {L_LOG_ME_IN}   + {L_USERNAME}:   {L_PASSWORD}:   {L_LOG_ME_IN}  
- +
diff --git a/phpBB/styles/subSilver/template/mcp_whois.html b/phpBB/styles/subSilver/template/mcp_whois.html new file mode 100644 index 0000000000..be0a6174b7 --- /dev/null +++ b/phpBB/styles/subSilver/template/mcp_whois.html @@ -0,0 +1,15 @@ + + +
{FORUM_NEW_IMG} {L_NEW_POSTS}
+ + + + + + + + + +
{L_WHOIS}
{RETURN_POST}
{WHOIS}
+ + \ No newline at end of file diff --git a/phpBB/styles/subSilver/template/overall_footer.html b/phpBB/styles/subSilver/template/overall_footer.html index 839d63609f..136b555331 100644 --- a/phpBB/styles/subSilver/template/overall_footer.html +++ b/phpBB/styles/subSilver/template/overall_footer.html @@ -4,7 +4,7 @@ - +
- +
@@ -261,7 +261,7 @@ function checkForm() {L_FONT_COLOR}