diff options
Diffstat (limited to 'phpBB/phpbb/controller')
| -rw-r--r-- | phpBB/phpbb/controller/helper.php | 93 | 
1 files changed, 7 insertions, 86 deletions
| diff --git a/phpBB/phpbb/controller/helper.php b/phpBB/phpbb/controller/helper.php index 3782512fa4..5722951278 100644 --- a/phpBB/phpbb/controller/helper.php +++ b/phpBB/phpbb/controller/helper.php @@ -16,7 +16,6 @@ namespace phpbb\controller;  use Symfony\Component\HttpFoundation\JsonResponse;  use Symfony\Component\HttpFoundation\Response;  use Symfony\Component\Routing\Generator\UrlGeneratorInterface; -use Symfony\Component\Routing\RequestContext;  /**  * Controller helper class, contains methods that do things for controllers @@ -41,12 +40,6 @@ class helper  	*/  	protected $config; -	/** -	 * phpBB router -	 * @var \phpbb\routing\router -	 */ -	protected $router; -  	/* @var \phpbb\symfony_request */  	protected $symfony_request; @@ -54,21 +47,9 @@ class helper  	protected $request;  	/** -	* @var \phpbb\filesystem\filesystem_interface The filesystem object -	*/ -	protected $filesystem; - -	/** -	* phpBB root path -	* @var string -	*/ -	protected $phpbb_root_path; - -	/** -	* PHP file extension -	* @var string -	*/ -	protected $php_ext; +	 * @var \phpbb\routing\helper +	 */ +	protected $routing_helper;  	/**  	* Constructor @@ -76,24 +57,18 @@ class helper  	* @param \phpbb\template\template $template Template object  	* @param \phpbb\user $user User object  	* @param \phpbb\config\config $config Config object -	* @param \phpbb\routing\router $router phpBB router  	* @param \phpbb\symfony_request $symfony_request Symfony Request object  	* @param \phpbb\request\request_interface $request phpBB request object -	* @param \phpbb\filesystem\filesystem_interface $filesystem The filesystem object -	* @param string $phpbb_root_path phpBB root path -	* @param string $php_ext PHP file extension +	* @param \phpbb\routing\helper $routing_helper Helper to generate the routes  	*/ -	public function __construct(\phpbb\template\template $template, \phpbb\user $user, \phpbb\config\config $config, \phpbb\routing\router $router, \phpbb\symfony_request $symfony_request, \phpbb\request\request_interface $request, \phpbb\filesystem\filesystem_interface $filesystem, $phpbb_root_path, $php_ext) +	public function __construct(\phpbb\template\template $template, \phpbb\user $user, \phpbb\config\config $config, \phpbb\symfony_request $symfony_request, \phpbb\request\request_interface $request, \phpbb\routing\helper $routing_helper)  	{  		$this->template = $template;  		$this->user = $user;  		$this->config = $config; -		$this->router = $router;  		$this->symfony_request = $symfony_request;  		$this->request = $request; -		$this->filesystem = $filesystem; -		$this->phpbb_root_path = $phpbb_root_path; -		$this->php_ext = $php_ext; +		$this->routing_helper = $routing_helper;  	}  	/** @@ -131,61 +106,7 @@ class helper  	*/  	public function route($route, array $params = array(), $is_amp = true, $session_id = false, $reference_type = UrlGeneratorInterface::ABSOLUTE_PATH)  	{ -		$anchor = ''; -		if (isset($params['#'])) -		{ -			$anchor = '#' . $params['#']; -			unset($params['#']); -		} - -		$context = new RequestContext(); -		$context->fromRequest($this->symfony_request); - -		$script_name = $this->symfony_request->getScriptName(); -		$page_name = substr($script_name, -1, 1) == '/' ? '' : utf8_basename($script_name); - -		$base_url = $context->getBaseUrl(); - -		// Append page name if base URL does not contain it -		if (!empty($page_name) && strpos($base_url, '/' . $page_name) === false) -		{ -			$base_url .= '/' . $page_name; -		} - -		// If enable_mod_rewrite is false we need to replace the current front-end by app.php, otherwise we need to remove it. -		$base_url = str_replace('/' . $page_name, empty($this->config['enable_mod_rewrite']) ? '/app.' . $this->php_ext : '', $base_url); - -		// We need to update the base url to move to the directory of the app.php file if the current script is not app.php -		if ($page_name !== 'app.php') -		{ -			if (empty($this->config['enable_mod_rewrite'])) -			{ -				$base_url = str_replace('/app.' . $this->php_ext, '/' . $this->phpbb_root_path . 'app.' . $this->php_ext, $base_url); -			} -			else -			{ -				$base_url .= preg_replace(get_preg_expression('path_remove_dot_trailing_slash'), '$2', $this->phpbb_root_path); -			} -		} - -		$base_url = $this->request->escape($this->filesystem->clean_path($base_url), true); - -		$context->setBaseUrl($base_url); - -		$this->router->setContext($context); -		$route_url = $this->router->generate($route, $params, $reference_type); - -		if ($is_amp) -		{ -			$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); +		return $this->routing_helper->route($route, $params, $is_amp, $session_id, $reference_type);  	}  	/** | 
