diff options
Diffstat (limited to 'phpBB/phpbb/install')
6 files changed, 144 insertions, 3 deletions
diff --git a/phpBB/phpbb/install/controller/helper.php b/phpBB/phpbb/install/controller/helper.php index 2dad42b4b6..6859414236 100644 --- a/phpBB/phpbb/install/controller/helper.php +++ b/phpBB/phpbb/install/controller/helper.php @@ -160,12 +160,13 @@ class helper  	 * Returns path from route name  	 *  	 * @param string	$route_name +	 * @param array		$parameters  	 *  	 * @return string  	 */ -	public function route($route_name) +	public function route($route_name, $parameters = array())  	{ -		$url = $this->router->generate($route_name); +		$url = $this->router->generate($route_name, $parameters);  		return $url;  	} diff --git a/phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php b/phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php index 1342ffa30f..31474ae4e9 100644 --- a/phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php +++ b/phpBB/phpbb/install/helper/iohandler/ajax_iohandler.php @@ -72,6 +72,11 @@ class ajax_iohandler extends iohandler_base  	protected $download;  	/** +	 * @var array +	 */ +	protected $redirect_url; + +	/**  	 * Constructor  	 *  	 * @param path_helper						$path_helper @@ -89,6 +94,7 @@ class ajax_iohandler extends iohandler_base  		$this->nav_data	= array();  		$this->cookies	= array();  		$this->download	= array(); +		$this->redirect_url = array();  		$this->file_status = '';  		parent::__construct(); @@ -131,6 +137,14 @@ class ajax_iohandler extends iohandler_base  	 */  	public function add_user_form_group($title, $form)  	{ +		$this->form = $this->generate_form_render_data($title, $form); +	} + +	/** +	 * {@inheritdoc} +	 */ +	public function generate_form_render_data($title, $form) +	{  		$this->template->assign_block_vars('options', array(  			'LEGEND'	=> $this->language->lang($title),  			'S_LEGEND'	=> true, @@ -189,7 +203,7 @@ class ajax_iohandler extends iohandler_base  			'form_install' => 'installer_form.html',  		)); -		$this->form = $this->template->assign_display('form_install'); +		return $this->template->assign_display('form_install');  	}  	/** @@ -273,6 +287,12 @@ class ajax_iohandler extends iohandler_base  			$this->cookies = array();  		} +		if (!empty($this->redirect_url)) +		{ +			$json_array['redirect'] = $this->redirect_url; +			$this->redirect_url = array(); +		} +  		return $json_array;  	} @@ -373,6 +393,15 @@ class ajax_iohandler extends iohandler_base  	}  	/** +	 * {@inheritdoc} +	 */ +	public function redirect($url, $use_ajax = false) +	{ +		$this->redirect_url = array('url' => $url, 'use_ajax' => $use_ajax); +		$this->send_response(); +	} + +	/**  	 * Callback function for language replacing  	 *  	 * @param array	$matches diff --git a/phpBB/phpbb/install/helper/iohandler/cli_iohandler.php b/phpBB/phpbb/install/helper/iohandler/cli_iohandler.php index 89f3594378..7945904524 100644 --- a/phpBB/phpbb/install/helper/iohandler/cli_iohandler.php +++ b/phpBB/phpbb/install/helper/iohandler/cli_iohandler.php @@ -289,4 +289,11 @@ class cli_iohandler extends iohandler_base  	public function render_update_file_status($status_array)  	{  	} + +	/** +	 * {@inheritdoc} +	 */ +	public function redirect($url, $use_ajax = false) +	{ +	}  } diff --git a/phpBB/phpbb/install/helper/iohandler/iohandler_base.php b/phpBB/phpbb/install/helper/iohandler/iohandler_base.php index 7271fe9bc0..fed4bc101f 100644 --- a/phpBB/phpbb/install/helper/iohandler/iohandler_base.php +++ b/phpBB/phpbb/install/helper/iohandler/iohandler_base.php @@ -170,6 +170,14 @@ abstract class iohandler_base implements iohandler_interface  	}  	/** +	 * {@inheritdoc} +	 */ +	public function generate_form_render_data($title, $form) +	{ +		return ''; +	} + +	/**  	 * Localize message.  	 *  	 * Note: When an array is passed into the parameters below, it will be diff --git a/phpBB/phpbb/install/helper/iohandler/iohandler_interface.php b/phpBB/phpbb/install/helper/iohandler/iohandler_interface.php index 00aab3283e..6b3839506f 100644 --- a/phpBB/phpbb/install/helper/iohandler/iohandler_interface.php +++ b/phpBB/phpbb/install/helper/iohandler/iohandler_interface.php @@ -124,6 +124,16 @@ interface iohandler_interface  	public function add_user_form_group($title, $form);  	/** +	 * Returns the rendering information for the form +	 * +	 * @param string	$title	Language variable with the title of the form +	 * @param array		$form	An array describing the required data (options etc) +	 * +	 * @return string	Information to render the form +	 */ +	public function generate_form_render_data($title, $form); + +	/**  	 * Sets the number of tasks belonging to the installer in the current mode.  	 *  	 * @param int	$task_count	Number of tasks @@ -175,6 +185,14 @@ interface iohandler_interface  	public function add_download_link($route, $title, $msg = null);  	/** +	 * Redirects the user to a new page +	 * +	 * @param string	$url		URL to redirect to +	 * @param bool		$use_ajax	Whether or not to use AJAX redirect +	 */ +	public function redirect($url, $use_ajax = false); + +	/**  	 * Renders the status of update files  	 *  	 * @param array	$status_array	Array containing files in groups to render diff --git a/phpBB/phpbb/install/helper/navigation/convertor_navigation.php b/phpBB/phpbb/install/helper/navigation/convertor_navigation.php new file mode 100644 index 0000000000..54cab83b1d --- /dev/null +++ b/phpBB/phpbb/install/helper/navigation/convertor_navigation.php @@ -0,0 +1,78 @@ +<?php +/** + * + * This file is part of the phpBB Forum Software package. + * + * @copyright (c) phpBB Limited <https://www.phpbb.com> + * @license GNU General Public License, version 2 (GPL-2.0) + * + * For full copyright and license information, please see + * the docs/CREDITS.txt file. + * + */ + +namespace phpbb\install\helper\navigation; + +use phpbb\install\helper\install_helper; + +class convertor_navigation implements navigation_interface +{ +	/** +	 * @var install_helper +	 */ +	private $install_helper; + +	/** +	 * Constructor +	 * +	 * @param install_helper	$install_helper +	 */ +	public function __construct(install_helper $install_helper) +	{ +		$this->install_helper = $install_helper; +	} + +	/** +	 * {@inheritdoc} +	 */ +	public function get() +	{ +		if (!$this->install_helper->is_phpbb_installed()) +		{ +			return array(); +		} + +		return array( +			'convert'	=> array( +				'label'	=> 'CONVERT', +				'route'	=> 'phpbb_convert_intro', +				'order'	=> 3, +				array( +					'intro'	=> array( +						'label'	=> 'SUB_INTRO', +						'stage'	=> true, +						'order'	=> 0, +					), +					'settings'	=> array( +						'label'	=> 'STAGE_SETTINGS', +						'stage'	=> true, +						'route'	=> 'phpbb_convert_settings', +						'order'	=> 1, +					), +					'convert'	=> array( +						'label'	=> 'STAGE_IN_PROGRESS', +						'stage'	=> true, +						'route'	=> 'phpbb_convert_convert', +						'order'	=> 2, +					), +					'finish'	=> array( +						'label'	=> 'CONVERT_COMPLETE', +						'stage'	=> true, +						'route'	=> 'phpbb_convert_finish', +						'order'	=> 3, +					), +				), +			), +		); +	} +}  | 
