mirror of
				https://github.com/phpbb/phpbb.git
				synced 2025-10-24 21:26:24 +02:00 
			
		
		
		
	[ticket/11574] Fix various path issues in the updater
PHPBB3-11574
This commit is contained in:
		| @@ -53,7 +53,7 @@ function phpbb_create_container(array $extensions, $phpbb_root_path, $php_ext) | ||||
| */ | ||||
| function phpbb_create_install_container($phpbb_root_path, $php_ext) | ||||
| { | ||||
| 	$other_config_path = $phpbb_root_path . 'install/update/new/config'; | ||||
| 	$other_config_path = $phpbb_root_path . 'install/update/new/config/'; | ||||
| 	$config_path = file_exists($other_config_path . 'services.yml') ? $other_config_path : $phpbb_root_path . 'config'; | ||||
|  | ||||
| 	$core = new phpbb_di_extension_core($config_path); | ||||
| @@ -73,6 +73,30 @@ function phpbb_create_install_container($phpbb_root_path, $php_ext) | ||||
| 	return $container; | ||||
| } | ||||
|  | ||||
| /** | ||||
| * Create updater container | ||||
| * | ||||
| * @param string $phpbb_root_path Root path | ||||
| * @param string $php_ext PHP Extension | ||||
| * @param array $config_path Path to config directory | ||||
| * @return ContainerBuilder object (compiled) | ||||
| */ | ||||
| function phpbb_create_update_container($phpbb_root_path, $php_ext, $config_path) | ||||
| { | ||||
| 	return phpbb_create_compiled_container( | ||||
| 		array( | ||||
| 			new phpbb_di_extension_config($phpbb_root_path . 'config.' . $php_ext), | ||||
| 			new phpbb_di_extension_core($config_path), | ||||
| 		), | ||||
| 		array( | ||||
| 			new phpbb_di_pass_collection_pass(), | ||||
| 			new phpbb_di_pass_kernel_pass(), | ||||
| 		), | ||||
| 		$phpbb_root_path, | ||||
| 		$php_ext | ||||
| 	); | ||||
| } | ||||
|  | ||||
| /** | ||||
| * Create a compiled ContainerBuilder object | ||||
| * | ||||
|   | ||||
| @@ -121,8 +121,8 @@ $phpbb_class_loader = new phpbb_class_loader('phpbb_', "{$phpbb_root_path}includ | ||||
| $phpbb_class_loader->register(); | ||||
|  | ||||
| // Set up container (must be done here because extensions table may not exist) | ||||
| $other_config_path = $phpbb_root_path . 'install/update/new/config'; | ||||
| $config_path = file_exists($other_config_path . 'services.yml') ? $other_config_path : $phpbb_root_path; | ||||
| $other_config_path = $phpbb_root_path . 'install/update/new/config/'; | ||||
| $config_path = file_exists($other_config_path . 'services.yml') ? $other_config_path : $phpbb_root_path . 'config'; | ||||
|  | ||||
| $container_extensions = array( | ||||
| 	new phpbb_di_extension_config($phpbb_root_path . 'config.' . $phpEx), | ||||
| @@ -130,7 +130,6 @@ $container_extensions = array( | ||||
| ); | ||||
| $container_passes = array( | ||||
| 	new phpbb_di_pass_collection_pass(), | ||||
| 	//new phpbb_di_pass_kernel_pass(), | ||||
| ); | ||||
| $phpbb_container = phpbb_create_container($container_extensions, $phpbb_root_path, $phpEx); | ||||
|  | ||||
|   | ||||
| @@ -75,7 +75,7 @@ class install_update extends module | ||||
| 		global $request, $phpbb_admin_path, $phpbb_adm_relative_path, $phpbb_container; | ||||
|  | ||||
| 		// Create a normal container now | ||||
| 		$phpbb_container = phpbb_create_default_container($phpbb_root_path, $phpEx); | ||||
| 		$phpbb_container = phpbb_create_update_container($phpbb_root_path, $phpEx, $phpbb_root_path . 'install/update/new/config'); | ||||
|  | ||||
| 		// Writes into global $cache | ||||
| 		$cache = $phpbb_container->get('cache'); | ||||
| @@ -125,7 +125,7 @@ class install_update extends module | ||||
| 		$config['default_lang'] = $language; | ||||
| 		$user->data['user_lang'] = $language; | ||||
|  | ||||
| 		$user->setup(array('common', 'acp/common', 'acp/board', 'install', 'posting')); | ||||
| 		$user->add_lang(array('common', 'acp/common', 'acp/board', 'install', 'posting')); | ||||
|  | ||||
| 		// Reset the default_lang | ||||
| 		$config['default_lang'] = $config_default_lang; | ||||
| @@ -302,30 +302,6 @@ class install_update extends module | ||||
| 			break; | ||||
|  | ||||
| 			case 'update_db': | ||||
|  | ||||
| 				// Make sure the database update is valid for the latest version | ||||
| 				$valid = false; | ||||
| 				$updates_to_version = ''; | ||||
|  | ||||
| 				if (file_exists($phpbb_root_path . 'install/database_update.' . $phpEx)) | ||||
| 				{ | ||||
| 					include_once($phpbb_root_path . 'install/database_update.' . $phpEx); | ||||
|  | ||||
| 					if ($updates_to_version === $this->update_info['version']['to']) | ||||
| 					{ | ||||
| 						$valid = true; | ||||
| 					} | ||||
| 				} | ||||
|  | ||||
| 				// Should not happen at all | ||||
| 				if (!$valid) | ||||
| 				{ | ||||
| 					trigger_error($user->lang['DATABASE_UPDATE_INFO_OLD'], E_USER_ERROR); | ||||
| 				} | ||||
|  | ||||
| 				// Just a precaution | ||||
| 				$cache->purge(); | ||||
|  | ||||
| 				// Redirect the user to the database update script with some explanations... | ||||
| 				$template->assign_vars(array( | ||||
| 					'S_DB_UPDATE'			=> true, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user