From dba5188f23d0c8ac00ed309003fb3251c204a33c Mon Sep 17 00:00:00 2001 From: Nathan Guse Date: Thu, 10 Oct 2013 15:12:55 -0500 Subject: [PATCH 1/3] [ticket/11874] Do not always prepend the web path; only replace phpbb_root_path PHPBB3-11874 --- phpBB/phpbb/path_helper.php | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/phpBB/phpbb/path_helper.php b/phpBB/phpbb/path_helper.php index b2ed11a927..e9fd092b62 100644 --- a/phpBB/phpbb/path_helper.php +++ b/phpBB/phpbb/path_helper.php @@ -89,26 +89,24 @@ class path_helper } /** - * Update a path to the correct relative root path + * Update a web path to the correct relative root path * * This replaces $phpbb_root_path . some_url with - * get_web_root_path() . some_url OR if $phpbb_root_path - * is not at the beginning of $path, just prepends the - * web root path + * get_web_root_path() . some_url * * @param string $path The path to be updated * @return string */ public function update_web_root_path($path) { - $web_root_path = $this->get_web_root_path($this->symfony_request); - if (strpos($path, $this->phpbb_root_path) === 0) { $path = substr($path, strlen($this->phpbb_root_path)); + + return $this->get_web_root_path() . $path; } - return $web_root_path . $path; + return $path; } /** From 31649f1eb0fa7ce44d4ed8137020f63c5d7e62e6 Mon Sep 17 00:00:00 2001 From: Nathan Guse Date: Thu, 10 Oct 2013 16:20:00 -0500 Subject: [PATCH 2/3] [ticket/11874] Fix tests PHPBB3-11874 --- tests/path_helper/web_root_path_test.php | 7 +++++- tests/template/template_includecss_test.php | 4 ++-- tests/template/template_includejs_test.php | 26 ++++++++++----------- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/tests/path_helper/web_root_path_test.php b/tests/path_helper/web_root_path_test.php index 938b58892b..2e1a37e02b 100644 --- a/tests/path_helper/web_root_path_test.php +++ b/tests/path_helper/web_root_path_test.php @@ -52,13 +52,18 @@ class phpbb_path_helper_web_root_path_test extends phpbb_test_case $this->set_phpbb_root_path(); return array( + array( + 'http://www.test.com/test.php', + 'http://www.test.com/test.php', + '/', + ), array( $this->phpbb_root_path . 'test.php', $this->phpbb_root_path . 'test.php', ), array( 'test.php', - $this->phpbb_root_path . 'test.php', + 'test.php', ), array( $this->phpbb_root_path . $this->phpbb_root_path . 'test.php', diff --git a/tests/template/template_includecss_test.php b/tests/template/template_includecss_test.php index 7424af0c93..9ed8bd0947 100644 --- a/tests/template/template_includecss_test.php +++ b/tests/template/template_includecss_test.php @@ -18,8 +18,8 @@ class phpbb_template_template_includecss_test extends phpbb_template_template_te // Prepare correct result $scripts = array( - '', - '', + '', + '', ); // Run test diff --git a/tests/template/template_includejs_test.php b/tests/template/template_includejs_test.php index ab0f4b9ca1..b20d068a64 100644 --- a/tests/template/template_includejs_test.php +++ b/tests/template/template_includejs_test.php @@ -24,51 +24,51 @@ class phpbb_template_template_includejs_test extends phpbb_template_template_tes */ array( array('TEST' => 1), - '', + '', ), array( array('TEST' => 2), - '', + '', ), array( array('TEST' => 3), - '', + '', ), array( array('TEST' => 4), - '', + '', ), array( array('TEST' => 6), - '', + '', ), array( array('TEST' => 7), - '', + '', ), array( array('TEST' => 8), - '', + '', ), array( array('TEST' => 9), - '', + '', ), array( array('TEST' => 10), - '', + '', ), array( array('TEST' => 11), - '', + '', ), array( array('TEST' => 12), - '', + '', ), array( array('TEST' => 14), - '', + '', ), array( array('TEST' => 15), @@ -84,7 +84,7 @@ class phpbb_template_template_includejs_test extends phpbb_template_template_tes ), array( array('TEST' => 18), - '', + '', ), ); } From ac9225774ecd93cbc717b99902c9cc94c7d8372e Mon Sep 17 00:00:00 2001 From: Nathan Guse Date: Thu, 10 Oct 2013 16:41:31 -0500 Subject: [PATCH 3/3] [ticket/11874] Correct when $phpbb_root_path is appended to build_url() PHPBB3-11874 --- phpBB/includes/functions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index dd0dcc09b6..cdadd8ac50 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -2866,7 +2866,7 @@ function build_url($strip_vars = false) $url_parts = parse_url($page); // URL - if ($url_parts !== false && !empty($url_parts['scheme']) && !empty($url_parts['host'])) + if ($url_parts === false || empty($url_parts['scheme']) || empty($url_parts['host'])) { $page = $phpbb_root_path . $page; }