diff options
Diffstat (limited to 'phpBB/phpbb/controller/helper.php')
| -rw-r--r-- | phpBB/phpbb/controller/helper.php | 104 | 
1 files changed, 21 insertions, 83 deletions
| diff --git a/phpBB/phpbb/controller/helper.php b/phpBB/phpbb/controller/helper.php index 08a63639b9..9dbc3737f7 100644 --- a/phpBB/phpbb/controller/helper.php +++ b/phpBB/phpbb/controller/helper.php @@ -15,9 +15,7 @@ namespace phpbb\controller;  use Symfony\Component\HttpFoundation\JsonResponse;  use Symfony\Component\HttpFoundation\Response; -use Symfony\Component\Routing\Generator\UrlGenerator;  use Symfony\Component\Routing\Generator\UrlGeneratorInterface; -use Symfony\Component\Routing\RequestContext;  /**  * Controller helper class, contains methods that do things for controllers @@ -49,21 +47,9 @@ class helper  	protected $request;  	/** -	* @var \phpbb\filesystem 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 @@ -71,26 +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\controller\provider $provider Path provider -	* @param \phpbb\extension\manager $manager Extension manager object  	* @param \phpbb\symfony_request $symfony_request Symfony Request object  	* @param \phpbb\request\request_interface $request phpBB request object -	* @param \phpbb\filesystem $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\controller\provider $provider, \phpbb\extension\manager $manager, \phpbb\symfony_request $symfony_request, \phpbb\request\request_interface $request, \phpbb\filesystem $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->symfony_request = $symfony_request;  		$this->request = $request; -		$this->filesystem = $filesystem; -		$this->phpbb_root_path = $phpbb_root_path; -		$this->php_ext = $php_ext; -		$provider->find_routing_files($manager->get_finder()); -		$this->route_collection = $provider->find($phpbb_root_path)->get_routes(); +		$this->routing_helper = $routing_helper;  	}  	/** @@ -133,61 +111,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); - -		$url_generator = new UrlGenerator($this->route_collection, $context); -		$route_url = $url_generator->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);  	}  	/** @@ -246,6 +170,20 @@ class helper  	}  	/** +	 * Assigns automatic refresh time meta tag in template +	 * +	 * @param	int		$time	time in seconds, when redirection should occur +	 * @param	string	$url	the URL where the user should be redirected +	 * @return	null +	 */ +	public function assign_meta_refresh_var($time, $url) +	{ +		$this->template->assign_vars(array( +			'META' => '<meta http-equiv="refresh" content="' . $time . '; url=' . $url . '" />', +		)); +	} + +	/**  	* Return the current url  	*  	* @return string | 
