From 217e77d16be62baf6d9a43c311d5b52d700cfa52 Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Sun, 21 Nov 2010 23:18:09 +0100 Subject: [PATCH 01/13] [ticket/9910] Make sure S_BBCODE_ALLOWED exists when viewing PMs PHPBB3-9910 --- phpBB/includes/ucp/ucp_pm_viewmessage.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/phpBB/includes/ucp/ucp_pm_viewmessage.php b/phpBB/includes/ucp/ucp_pm_viewmessage.php index 16700c490c..b91636a9c8 100644 --- a/phpBB/includes/ucp/ucp_pm_viewmessage.php +++ b/phpBB/includes/ucp/ucp_pm_viewmessage.php @@ -172,6 +172,8 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row) // Number of "to" recipients $num_recipients = (int) preg_match_all('/:?(u|g)_([0-9]+):?/', $message_row['to_address'], $match); + $bbcode_status = ($config['allow_bbcode'] && $config['auth_bbcode_pm'] && $auth->acl_get('u_pm_bbcode')) ? true : false; + $template->assign_vars(array( 'MESSAGE_AUTHOR_FULL' => get_username_string('full', $author_id, $user_info['username'], $user_info['user_colour'], $user_info['username']), 'MESSAGE_AUTHOR_COLOUR' => get_username_string('colour', $author_id, $user_info['username'], $user_info['user_colour'], $user_info['username']), @@ -229,6 +231,7 @@ function view_message($id, $mode, $folder_id, $msg_id, $folder, $message_row) 'S_AUTHOR_DELETED' => ($author_id == ANONYMOUS) ? true : false, 'S_SPECIAL_FOLDER' => in_array($folder_id, array(PRIVMSGS_NO_BOX, PRIVMSGS_OUTBOX)), 'S_PM_RECIPIENTS' => $num_recipients, + 'S_BBCODE_ALLOWED' => ($bbcode_status) ? 1 : 0, 'U_PRINT_PM' => ($config['print_pm'] && $auth->acl_get('u_pm_printpm')) ? "$url&f=$folder_id&p=" . $message_row['msg_id'] . "&view=print" : '', 'U_FORWARD_PM' => ($config['forward_pm'] && $auth->acl_get('u_sendpm') && $auth->acl_get('u_pm_forward')) ? "$url&mode=compose&action=forward&f=$folder_id&p=" . $message_row['msg_id'] : '') From 5ec1c887959be5629c8a4c712b152d58058929a8 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 25 Nov 2010 23:29:12 +0100 Subject: [PATCH 02/13] [ticket/9930] Redirect failes with open_basedir enabled. Open_basedir does not allow file_exists() for "." and directories without a trayling-slash. Therefor we must append it on the check. PHPBB3-9930 --- phpBB/includes/functions.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index 561a9906c4..c7f19b709d 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -2353,12 +2353,12 @@ function redirect($url, $return = false, $disable_cd_check = false) // Relative uri $pathinfo = pathinfo($url); - if (!$disable_cd_check && !file_exists($pathinfo['dirname'])) + if (!$disable_cd_check && !file_exists($pathinfo['dirname'] . '/')) { $url = str_replace('../', '', $url); $pathinfo = pathinfo($url); - if (!file_exists($pathinfo['dirname'])) + if (!file_exists($pathinfo['dirname'] . '/')) { // fallback to "last known user page" // at least this way we know the user does not leave the phpBB root From 23765fa6684ab8a4764ce944ac0469d2973eb12f Mon Sep 17 00:00:00 2001 From: Richard Foote Date: Sun, 28 Nov 2010 13:32:35 +0100 Subject: [PATCH 03/13] [ticket/9932] Add the Bing bot when converting PHPBB3-9932 --- phpBB/includes/functions_convert.php | 1 + 1 file changed, 1 insertion(+) diff --git a/phpBB/includes/functions_convert.php b/phpBB/includes/functions_convert.php index 9e26043b39..4a359dcade 100644 --- a/phpBB/includes/functions_convert.php +++ b/phpBB/includes/functions_convert.php @@ -1816,6 +1816,7 @@ function add_bots() 'Alta Vista [Bot]' => array('Scooter/', ''), 'Ask Jeeves [Bot]' => array('Ask Jeeves', ''), 'Baidu [Spider]' => array('Baiduspider+(', ''), + 'Bing [Bot]' => array('bingbot/', ''), 'Exabot [Bot]' => array('Exabot/', ''), 'FAST Enterprise [Crawler]' => array('FAST Enterprise Crawler', ''), 'FAST WebCrawler [Crawler]' => array('FAST-WebCrawler/', ''), From b017f54ac9c923e74325f8cca96b11c6b684f115 Mon Sep 17 00:00:00 2001 From: Ingo Migliarina Date: Wed, 1 Dec 2010 18:33:53 +0100 Subject: [PATCH 04/13] [ticket/9921] Adding sample configuration file for the lighttpd webserver. PHPBB3-9921 --- phpBB/docs/lighttpd.sample.conf | 60 +++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 phpBB/docs/lighttpd.sample.conf diff --git a/phpBB/docs/lighttpd.sample.conf b/phpBB/docs/lighttpd.sample.conf new file mode 100644 index 0000000000..5873d1c945 --- /dev/null +++ b/phpBB/docs/lighttpd.sample.conf @@ -0,0 +1,60 @@ +# Sample lighttpd configuration file for phpBB. +# Global settings have been removed, copy them +# from your system's lighttpd.conf. +# Tested with lighttpd 1.4.26 + +# Load moules +server.modules += ( + "mod_access", + "mod_fastcgi", + "mod_accesslog" +) + +# If you have domains with and without www prefix, +# redirect one to the other. +$HTTP["host"] =~ "^(myforums\.com)$" { + url.redirect = ( + ".*" => "http://www.%1$0" + ) +} + +$HTTP["host"] == "www.myforums.com" { + server.name = "www.myforums.com" + server.document-root = "/path/to/phpbb" + server.dir-listing = "disable" + + index-file.names = ( "index.php", "index.htm", "index.html" ) + accesslog.filename = "/var/log/lighttpd/access-www.myforums.com.log" + + # Deny access to internal phpbb files. + $HTTP["url"] =~ "^/(config\.php|common\.php|includes|cache|files|store|images/avatars/upload)" { + url.access-deny = ( "" ) + } + + # Deny access to version control system directories. + $HTTP["url"] =~ "/\.svn|/\.git" { + url.access-deny = ( "" ) + } + + # Deny access to apache configuration files. + $HTTP["url"] =~ "/\.htaccess|/\.htpasswd|/\.htgroups" { + url.access-deny = ( "" ) + } + + fastcgi.server = ( ".php" => + (( + "bin-path" => "/usr/bin/php-cgi", + "socket" => "/tmp/php.socket", + "max-procs" => 4, + "idle-timeout" => 30, + "bin-environment" => ( + "PHP_FCGI_CHILDREN" => "10", + "PHP_FCGI_MAX_REQUESTS" => "10000" + ), + "bin-copy-environment" => ( + "PATH", "SHELL", "USER" + ), + "broken-scriptfilename" => "enable" + )) + ) +} From 8b3d068e8321a16451dddcef6da2cf1245506e55 Mon Sep 17 00:00:00 2001 From: Adam Reyher Date: Wed, 1 Dec 2010 14:14:46 -0500 Subject: [PATCH 05/13] [ticket/9575] Change 'administrate' to 'administer' PHPBB3-9575 --- phpBB/language/en/acp/common.php | 2 +- phpBB/language/en/acp/groups.php | 2 +- phpBB/language/en/memberlist.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/phpBB/language/en/acp/common.php b/phpBB/language/en/acp/common.php index 2c549f8130..8c71e936b3 100644 --- a/phpBB/language/en/acp/common.php +++ b/phpBB/language/en/acp/common.php @@ -255,7 +255,7 @@ $lang = array_merge($lang, array( 'MOVE_UP' => 'Move up', 'NOTIFY' => 'Notification', - 'NO_ADMIN' => 'You are not authorised to administrate this board.', + 'NO_ADMIN' => 'You are not authorised to administer this board.', 'NO_EMAILS_DEFINED' => 'No valid e-mail addresses found.', 'NO_PASSWORD_SUPPLIED' => 'You need to enter your password to access the Administration Control Panel.', diff --git a/phpBB/language/en/acp/groups.php b/phpBB/language/en/acp/groups.php index e8c1a3c494..3444b98303 100644 --- a/phpBB/language/en/acp/groups.php +++ b/phpBB/language/en/acp/groups.php @@ -36,7 +36,7 @@ if (empty($lang) || !is_array($lang)) // in a url you again do not need to specify an order e.g., 'Click %sHERE%s' is fine $lang = array_merge($lang, array( - 'ACP_GROUPS_MANAGE_EXPLAIN' => 'From this panel you can administrate all your usergroups. You can delete, create and edit existing groups. Furthermore, you may choose group leaders, toggle open/hidden/closed group status and set the group name and description.', + 'ACP_GROUPS_MANAGE_EXPLAIN' => 'From this panel you can administer all your usergroups. You can delete, create and edit existing groups. Furthermore, you may choose group leaders, toggle open/hidden/closed group status and set the group name and description.', 'ADD_USERS' => 'Add users', 'ADD_USERS_EXPLAIN' => 'Here you can add new users to the group. You may select whether this group becomes the new default for the selected users. Additionally you can define them as group leaders. Please enter each username on a separate line.', diff --git a/phpBB/language/en/memberlist.php b/phpBB/language/en/memberlist.php index e7a9c6b88d..213f766610 100644 --- a/phpBB/language/en/memberlist.php +++ b/phpBB/language/en/memberlist.php @@ -131,7 +131,7 @@ $lang = array_merge($lang, array( 'SORT_POST_COUNT' => 'Post count', 'USERNAME_BEGINS_WITH' => 'Username begins with', - 'USER_ADMIN' => 'Administrate user', + 'USER_ADMIN' => 'Administer user', 'USER_BAN' => 'Banning', 'USER_FORUM' => 'User statistics', 'USER_LAST_REMINDED' => array( From e6a6f00562953f507bb05f4c61d40a0800f70bff Mon Sep 17 00:00:00 2001 From: Adam Reyher Date: Wed, 1 Dec 2010 14:29:28 -0500 Subject: [PATCH 06/13] [ticket/9928] Do not link "login to your board" to the "send statistics" page. PHPBB3-9928 --- phpBB/language/en/install.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpBB/language/en/install.php b/phpBB/language/en/install.php index 14923e836e..91ecb10848 100644 --- a/phpBB/language/en/install.php +++ b/phpBB/language/en/install.php @@ -370,7 +370,7 @@ $lang = array_merge($lang, array( // Updater $lang = array_merge($lang, array( - 'ALL_FILES_UP_TO_DATE' => 'All files are up to date with the latest phpBB version. You should now login to your board and check if everything is working fine. Do not forget to delete, rename or move your install directory! Please send us updated information about your server and board configurations from the Send statistics module in your ACP.', + 'ALL_FILES_UP_TO_DATE' => 'All files are up to date with the latest phpBB version. You should now login to your board and check if everything is working fine. Do not forget to delete, rename or move your install directory! Please send us updated information about your server and board configurations from the Send statistics module in your ACP.', 'ARCHIVE_FILE' => 'Source file within archive', 'BACK' => 'Back', From 7a3d6a8168c7cd7da4f3ff462579ed562d0432a1 Mon Sep 17 00:00:00 2001 From: RMcGirr83 Date: Mon, 29 Nov 2010 07:10:19 -0500 Subject: [PATCH 07/13] [ticket/8736] guest can have 255 chars long username when you post as a guest (anonymous) you can fill the field username with 255 chars. that will destroy the prosilver and subsilver2 style at viewtopic. settings for username in ACP: 6-16 Chars PHPBB3-8736 --- phpBB/posting.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/phpBB/posting.php b/phpBB/posting.php index f775699cee..7368026136 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -861,11 +861,18 @@ if ($submit || $preview || $refresh) { include($phpbb_root_path . 'includes/functions_user.' . $phpEx); + $user->add_lang('ucp'); + if (($result = validate_username($post_data['username'], (!empty($post_data['post_username'])) ? $post_data['post_username'] : '')) !== false) { - $user->add_lang('ucp'); $error[] = $user->lang[$result . '_USERNAME']; } + + if (($result = validate_string($post_data['username'], false, $config['min_name_chars'], $config['max_name_chars'])) !== false) + { + $min_max_amount = ($result == 'TOO_SHORT') ? $config['min_name_chars'] : $config['max_name_chars']; + $error[] = sprintf($user->lang['FIELD_' . $result], $user->lang['USERNAME'], $min_max_amount); + } } if ($config['enable_post_confirm'] && !$user->data['is_registered'] && in_array($mode, array('quote', 'post', 'reply'))) From 0491bfbc2d5e7d98a7a15b5d0096c2647b821709 Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Sun, 5 Dec 2010 14:09:39 +0100 Subject: [PATCH 08/13] [ticket/9575] Also change 'administrate' to 'administer' in templates PHPBB3-9575 --- phpBB/adm/style/acp_forums.html | 2 +- phpBB/adm/style/acp_styles.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/phpBB/adm/style/acp_forums.html b/phpBB/adm/style/acp_forums.html index 9f9216a068..d27cea28f7 100644 --- a/phpBB/adm/style/acp_forums.html +++ b/phpBB/adm/style/acp_forums.html @@ -58,7 +58,7 @@ /** * Init the wanted display functionality if javascript is enabled. - * If javascript is not available, the user is still able to properly administrate. + * If javascript is not available, the user is still able to properly administer. */ onload = function() { diff --git a/phpBB/adm/style/acp_styles.html b/phpBB/adm/style/acp_styles.html index 5bde4008ad..cb4361dd6f 100644 --- a/phpBB/adm/style/acp_styles.html +++ b/phpBB/adm/style/acp_styles.html @@ -77,7 +77,7 @@ /** * Init the wanted display functionality if javascript is enabled. - * If javascript is not available, the user is still able to properly administrate. + * If javascript is not available, the user is still able to properly administer. */ onload = function() { From 7dd06e8113d4a571d8681a9a11f2b06ca7a7beb8 Mon Sep 17 00:00:00 2001 From: Igor Wiedler Date: Sun, 5 Dec 2010 14:35:19 +0100 Subject: [PATCH 09/13] [ticket/9939] Fix JavaScript error in admin recaptcha template PHPBB3-9939 --- phpBB/adm/style/captcha_recaptcha.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpBB/adm/style/captcha_recaptcha.html b/phpBB/adm/style/captcha_recaptcha.html index 586c494868..d3038fd714 100644 --- a/phpBB/adm/style/captcha_recaptcha.html +++ b/phpBB/adm/style/captcha_recaptcha.html @@ -5,7 +5,7 @@ // From d7287ec633577886e5f92543c2a610d4aaa93d53 Mon Sep 17 00:00:00 2001 From: ChrisTX Date: Sun, 21 Nov 2010 23:02:56 +0100 Subject: [PATCH 10/13] [feature/acm-wincache] Adding caching module for WinCache's User Cache. PHPBB3-9942 --- phpBB/includes/acm/acm_wincache.php | 84 +++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 phpBB/includes/acm/acm_wincache.php diff --git a/phpBB/includes/acm/acm_wincache.php b/phpBB/includes/acm/acm_wincache.php new file mode 100644 index 0000000000..0501ab74c5 --- /dev/null +++ b/phpBB/includes/acm/acm_wincache.php @@ -0,0 +1,84 @@ +key_prefix . $var, $success); + + return ($success) ? $result : false; + } + + /** + * Store data in the cache + * + * @access protected + * @param string $var Cache key + * @param mixed $data Data to store + * @param int $ttl Time-to-live of cached data + * @return bool True if the operation succeeded + */ + function _write($var, $data, $ttl = 2592000) + { + return wincache_ucache_set($this->key_prefix . $var, $data, $ttl); + } + + /** + * Remove an item from the cache + * + * @access protected + * @param string $var Cache key + * @return bool True if the operation succeeded + */ + function _delete($var) + { + return wincache_ucache_delete($this->key_prefix . $var); + } +} From 41184e5d7621d19f8349facb9c1cc9217ae7189e Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Mon, 13 Dec 2010 14:21:32 +0100 Subject: [PATCH 11/13] [task/phpdoc] Added a configuration file for phpDocumentor. PHPBB3-9943 --- build/phpdoc-phpbb.ini | 106 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 build/phpdoc-phpbb.ini diff --git a/build/phpdoc-phpbb.ini b/build/phpdoc-phpbb.ini new file mode 100644 index 0000000000..86d33549c0 --- /dev/null +++ b/build/phpdoc-phpbb.ini @@ -0,0 +1,106 @@ +;; phpDocumentor parse configuration file +;; +;; This file is designed to cut down on repetitive typing on the command-line or web interface +;; You can copy this file to create a number of configuration files that can be used with the +;; command-line switch -c, as in phpdoc -c default.ini or phpdoc -c myini.ini. The web +;; interface will automatically generate a list of .ini files that can be used. +;; +;; default.ini is used to generate the online manual at http://www.phpdoc.org/docs +;; +;; ALL .ini files must be in the user subdirectory of phpDocumentor with an extension of .ini +;; +;; Copyright 2002, Greg Beaver +;; +;; WARNING: do not change the name of any command-line parameters, phpDocumentor will ignore them + +[Parse Data] +;; title of all the documentation +;; legal values: any string +title = phpBB3 Sourcecode Documentation + +;; parse files that start with a . like .bash_profile +;; legal values: true, false +hidden = false + +;; show elements marked @access private in documentation by setting this to on +;; legal values: on, off +parseprivate = on + +;; parse with javadoc-like description (first sentence is always the short description) +;; legal values: on, off +javadocdesc = off + +;; add any custom @tags separated by commas here +;; legal values: any legal tagname separated by commas. +;customtags = mytag1,mytag2 + +;; This is only used by the XML:DocBook/peardoc2 converter +defaultcategoryname = sourcecode + +;; what is the main package? +;; legal values: alphanumeric string plus - and _ +defaultpackagename = phpBB3 + +;; output any parsing information? set to on for cron jobs +;; legal values: on +;quiet = on + +;; parse a PEAR-style repository. Do not turn this on if your project does +;; not have a parent directory named "pear" +;; legal values: on/off +;pear = on + +;; where should the documentation be written? +;; legal values: a legal path +target = api + +;; Which files should be parsed out as special documentation files, such as README, +;; INSTALL and CHANGELOG? This overrides the default files found in +;; phpDocumentor.ini (this file is not a user .ini file, but the global file) +readmeinstallchangelog = README.html, INSTALL.html, CHANGELOG.html, COPYING + +;; limit output to the specified packages, even if others are parsed +;; legal values: package names separated by commas +;packageoutput = phpBB3,ACP,SEARCH,DBAL,ACM,MCP,UCP,LOGIN,lang_english + +;; comma-separated list of files to parse +;; legal values: paths separated by commas +;filename = /path/to/file1,/path/to/file2,fileincurrentdirectory + +;; comma-separated list of directories to parse +;; legal values: directory paths separated by commas +;directory = /path1,/path2,.,..,subdirectory +;directory = /home/jeichorn/cvs/pear +directory = ../phpBB/ + +;; template base directory (the equivalent directory of /phpDocumentor) +;templatebase = /path/to/my/templates + +;; directory to find any example files in through @example and {@example} tags +;examplesdir = c:\wamp\www\examples + +;; comma-separated list of files, directories or wildcards ? and * (any wildcard) to ignore +;; legal values: any wildcard strings separated by commas +;ignore = /path/to/ignore*,*list.php,myfile.php,subdirectory/ +ignore = templates_c/,*HTML/default/*,spec/,*config.php*,*CVS/,test_chora.php,testupdate/,cache/,store/,*proSilver/,develop/,includes/utf/data/,includes/captcha/fonts/,install/update/,install/update.new/,files/,*phpinfo.php*,*update_script.php*,*upgrade.php*,*convert.php*,install/converter/,language/de/,script/,*swatch.php*,*test.php*,*test2.php*,*install.php*,*functions_diff.php*,*acp_update.php* + +;; comma-separated list of Converters to use in outputformat:Convertername:templatedirectory format +;; legal values: HTML:frames:default,HTML:frames:l0l33t,HTML:frames:phpdoc.de,HTML:frames:phphtmllib, +;; HTML:frames:earthli, +;; HTML:frames:DOM/default,HTML:frames:DOM/l0l33t,HTML:frames:DOM/phpdoc.de, +;; HTML:frames:DOM/phphtmllib,HTML:frames:DOM/earthli +;; HTML:Smarty:default,HTML:Smarty:PHP,HTML:Smarty:HandS +;; PDF:default:default,CHM:default:default,XML:DocBook/peardoc2:default +;output=HTML:frames:earthli,HTML:frames:default,HTML:frames:l0l33t,HTML:frames:phpdoc.de,HTML:frames:phphtmllib,HTML:frames:DOM/default,HTML:frames:DOM/l0l33t,HTML:frames:DOM/phpdoc.de,HTML:frames:DOM/earthli,HTML:frames:DOM/phphtmllib,HTML:frames:phpedit,HTML:Smarty:default,HTML:Smarty:PHP,HTML:Smarty:HandS,CHM:default:default,PDF:default:default +;output=HTML:frames:DOM/default,XML:DocBook/peardoc2:default,CHM:default:default,HTML:frames:DOM/earthli,HTML:frames:DOM/phpdoc.de,HTML:frames:DOM/phphtmllib,HTML:frames:phphtmllib +;HTML:frames:earthli +;output=XML:DocBook/peardoc2:default + +;output=HTML:frames:DOM/earthli +;output=HTML:frames:earthli,HTML:frames:default,HTML:frames:l0l33t,HTML:frames:phpdoc.de,HTML:frames:phphtmllib,HTML:frames:DOM/default,HTML:frames:DOM/l0l33t,HTML:frames:DOM/phpdoc.de,HTML:frames:DOM/earthli,HTML:frames:DOM/phphtmllib,HTML:frames:phpedit,HTML:Smarty:default,HTML:Smarty:PHP,HTML:Smarty:HandS,CHM:default:default,PDF:default:default +;output=HTML:Smarty:PHP +output=HTML:frames:earthli + +;; turn this option on if you want highlighted source code for every file +;; legal values: on/off +sourcecode = off From 03c52e79b909158a1461bc1c6a48b44fd4a2a97a Mon Sep 17 00:00:00 2001 From: Nils Adermann Date: Mon, 13 Dec 2010 14:24:33 +0100 Subject: [PATCH 12/13] [task/phpdoc] Added a phpdoc task to the build process PHPBB3-9943 --- build/build.xml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/build/build.xml b/build/build.xml index bf77d82f6c..8d2afcb00c 100644 --- a/build/build.xml +++ b/build/build.xml @@ -12,7 +12,7 @@ - + @@ -64,6 +64,12 @@ --> + + + + From b88582199d09931e23b939784fc266fbc0473d30 Mon Sep 17 00:00:00 2001 From: rxu Date: Sun, 17 Oct 2010 15:42:13 +0800 Subject: [PATCH 13/13] [ticket/9851] "Search new posts" should require login. The newposts search uses user_lastvisit, so it should require user to log in. PHPBB3-9851 --- phpBB/language/en/search.php | 1 + phpBB/search.php | 56 ++++++++++++++++++++++-------------- 2 files changed, 35 insertions(+), 22 deletions(-) diff --git a/phpBB/language/en/search.php b/phpBB/language/en/search.php index d93fe6b56a..cd38cd615f 100644 --- a/phpBB/language/en/search.php +++ b/phpBB/language/en/search.php @@ -54,6 +54,7 @@ $lang = array_merge($lang, array( 'LOGIN_EXPLAIN_EGOSEARCH' => 'The board requires you to be registered and logged in to view your own posts.', 'LOGIN_EXPLAIN_UNREADSEARCH'=> 'The board requires you to be registered and logged in to view your unread posts.', + 'LOGIN_EXPLAIN_NEWPOSTS' => 'The board requires you to be registered and logged in to view new posts since your last visit.', 'MAX_NUM_SEARCH_KEYWORDS_REFINE' => 'You specified too many words to search for. Please do not enter more than %1$d words.', diff --git a/phpBB/search.php b/phpBB/search.php index 2a13e20477..2aa61401cf 100644 --- a/phpBB/search.php +++ b/phpBB/search.php @@ -47,32 +47,44 @@ $sort_dir = request_var('sd', 'd'); $return_chars = request_var('ch', ($topic_id) ? -1 : 300); $search_forum = request_var('fid', array(0)); -// We put login boxes for the case if search_id is egosearch or unreadposts +// We put login boxes for the case if search_id is newposts, egosearch or unreadposts // because a guest should be able to log in even if guests search is not permitted -// Egosearch is an author search -if ($search_id == 'egosearch') +switch ($search_id) { - $author_id = $user->data['user_id']; + // Egosearch is an author search + case 'egosearch': + $author_id = $user->data['user_id']; + if ($user->data['user_id'] == ANONYMOUS) + { + login_box('', $user->lang['LOGIN_EXPLAIN_EGOSEARCH']); + } + break; - if ($user->data['user_id'] == ANONYMOUS) - { - login_box('', $user->lang['LOGIN_EXPLAIN_EGOSEARCH']); - } -} - -// Search for unread posts needs to be allowed and user to be logged in if topics tracking for guests is disabled -if ($search_id == 'unreadposts') -{ - if (!$config['load_unreads_search']) - { - $template->assign_var('S_NO_SEARCH', true); - trigger_error('NO_SEARCH_UNREADS'); - } - else if (!$config['load_anon_lastread'] && !$user->data['is_registered']) - { - login_box('', $user->lang['LOGIN_EXPLAIN_UNREADSEARCH']); - } + // Search for unread posts needs to be allowed and user to be logged in if topics tracking for guests is disabled + case 'unreadposts': + if (!$config['load_unreads_search']) + { + $template->assign_var('S_NO_SEARCH', true); + trigger_error('NO_SEARCH_UNREADS'); + } + else if (!$config['load_anon_lastread'] && !$user->data['is_registered']) + { + login_box('', $user->lang['LOGIN_EXPLAIN_UNREADSEARCH']); + } + break; + + // The "new posts" search uses user_lastvisit which is user based, so it should require user to log in. + case 'newposts': + if ($user->data['user_id'] == ANONYMOUS) + { + login_box('', $user->lang['LOGIN_EXPLAIN_NEWPOSTS']); + } + break; + + default: + // There's nothing to do here for now ;) + break; } // Is user able to search? Has search been disabled?