diff options
Diffstat (limited to 'phpBB/phpbb/controller')
| -rw-r--r-- | phpBB/phpbb/controller/helper.php | 38 | 
1 files changed, 33 insertions, 5 deletions
| diff --git a/phpBB/phpbb/controller/helper.php b/phpBB/phpbb/controller/helper.php index c6c470e91b..79378c2434 100644 --- a/phpBB/phpbb/controller/helper.php +++ b/phpBB/phpbb/controller/helper.php @@ -13,6 +13,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; @@ -99,12 +100,14 @@ class helper  	* @param string $page_title The title of the page to output  	* @param int $status_code The status code to be sent to the page header  	* @param bool $display_online_list Do we display online users list +	* @param int $item_id Restrict online users to item id +	* @param string $item Restrict online users to a certain session item, e.g. forum for session_forum_id  	*  	* @return Response object containing rendered page  	*/ -	public function render($template_file, $page_title = '', $status_code = 200, $display_online_list = false) +	public function render($template_file, $page_title = '', $status_code = 200, $display_online_list = false, $item_id = 0, $item = 'forum')  	{ -		page_header($page_title, $display_online_list); +		page_header($page_title, $display_online_list, $item_id, $item);  		$this->template->set_filenames(array(  			'body'	=> $template_file, @@ -142,6 +145,12 @@ class helper  		$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); @@ -206,12 +215,31 @@ class helper  	public function message($message, array $parameters = array(), $title = 'INFORMATION', $code = 200)  	{  		array_unshift($parameters, $message); +		$message_text = call_user_func_array(array($this->user, 'lang'), $parameters); +		$message_title = $this->user->lang($title); + +		if ($this->request->is_ajax()) +		{ +			global $refresh_data; + +			return new JsonResponse( +				array( +					'MESSAGE_TITLE'		=> $message_title, +					'MESSAGE_TEXT'		=> $message_text, +					'S_USER_WARNING'	=> false, +					'S_USER_NOTICE'		=> false, +					'REFRESH_DATA'		=> (!empty($refresh_data)) ? $refresh_data : null +				), +				$code +			); +		} +  		$this->template->assign_vars(array( -			'MESSAGE_TEXT'	=> call_user_func_array(array($this->user, 'lang'), $parameters), -			'MESSAGE_TITLE'	=> $this->user->lang($title), +			'MESSAGE_TEXT'	=> $message_text, +			'MESSAGE_TITLE'	=> $message_title,  		)); -		return $this->render('message_body.html', $this->user->lang($title), $code); +		return $this->render('message_body.html', $message_title, $code);  	}  	/** | 
