From dab6b99bcda411027d040c3b985460990f2a117a Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Thu, 4 Sep 2014 17:12:25 +0200 Subject: [ticket/13036] Make the reference type configurable when generating a route PHPBB3-13036 --- phpBB/phpbb/controller/helper.php | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'phpBB') diff --git a/phpBB/phpbb/controller/helper.php b/phpBB/phpbb/controller/helper.php index e5e54fac00..77fe5cb3a8 100644 --- a/phpBB/phpbb/controller/helper.php +++ b/phpBB/phpbb/controller/helper.php @@ -15,6 +15,7 @@ namespace phpbb\controller; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Generator\UrlGenerator; +use Symfony\Component\Routing\Generator\UrlGeneratorInterface; use Symfony\Component\Routing\RequestContext; /** @@ -115,10 +116,11 @@ class helper * @param string $route Name of the route to travel * @param array $params String or array of additional url parameters * @param bool $is_amp Is url using & (true) or & (false) - * @param string|bool $session_id Possibility to use a custom session id instead of the global one + * @param string|bool $session_id Possibility to use a custom session id instead of the global one + * @param bool|string $reference_type The type of reference to be generated (one of the constants) * @return string The URL already passed through append_sid() */ - public function route($route, array $params = array(), $is_amp = true, $session_id = false) + public function route($route, array $params = array(), $is_amp = true, $session_id = false, $reference_type = UrlGeneratorInterface::ABSOLUTE_PATH) { $anchor = ''; if (isset($params['#'])) @@ -146,7 +148,7 @@ class helper $context->setBaseUrl($base_url); $url_generator = new UrlGenerator($this->route_collection, $context); - $route_url = $url_generator->generate($route, $params); + $route_url = $url_generator->generate($route, $params, $reference_type); if ($is_amp) { -- cgit v1.2.1 From bb5d6a2551f7329162424f1ae0edcd711b4bd5e6 Mon Sep 17 00:00:00 2001 From: Tristan Darricau Date: Thu, 4 Sep 2014 23:20:06 +0200 Subject: [ticket/13036] Add unit tests PHPBB3-13036 --- phpBB/phpbb/controller/helper.php | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'phpBB') diff --git a/phpBB/phpbb/controller/helper.php b/phpBB/phpbb/controller/helper.php index 77fe5cb3a8..e2932086db 100644 --- a/phpBB/phpbb/controller/helper.php +++ b/phpBB/phpbb/controller/helper.php @@ -155,6 +155,11 @@ class helper $route_url = str_replace(array('&', '&'), array('&', '&'), $route_url); } + if ($reference_type === UrlGeneratorInterface::RELATIVE_PATH && empty($this->config['enable_mod_rewrite'])) + { + $route_url = 'app.' . $this->php_ext . '/' . $route_url; + } + return append_sid($route_url . $anchor, false, $is_amp, $session_id, true); } -- cgit v1.2.1