mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-10 21:38:54 +00:00
[ticket/11574] Fix various path issues in the updater
PHPBB3-11574
This commit is contained in:
parent
51ab2c710e
commit
d6de892ee4
3 changed files with 29 additions and 30 deletions
|
@ -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,
|
||||
|
|
Loading…
Add table
Reference in a new issue