[ticket/14312] Allow updating without having the update directory

PHPBB3-14312
This commit is contained in:
Mate Bartus 2016-02-04 21:35:45 +01:00
parent 2f6f9a05eb
commit ad7b3ed178
3 changed files with 39 additions and 15 deletions

View file

@ -15,6 +15,7 @@ services:
arguments: arguments:
- '@installer.helper.container_factory' - '@installer.helper.container_factory'
- '@filesystem' - '@filesystem'
- '@installer.helper.config'
- '@installer.helper.iohandler' - '@installer.helper.iohandler'
- '@installer.helper.update_helper' - '@installer.helper.update_helper'
- '%core.root_path%' - '%core.root_path%'

View file

@ -57,11 +57,17 @@ class obtain_update_settings extends task_base
} }
else else
{ {
$this->iohandler->add_user_form_group('UPDATE_TYPE', array( if ($this->installer_config->get('disable_filesystem_update', false))
'update_type' => array( {
'label' => 'UPDATE_TYPE', $options[] = array(
'type' => 'radio', 'value' => 'db_only',
'options' => array( 'label' => 'UPDATE_TYPE_DB_ONLY',
'selected' => true,
);
}
else
{
$options = array(
array( array(
'value' => 'all', 'value' => 'all',
'label' => 'UPDATE_TYPE_ALL', 'label' => 'UPDATE_TYPE_ALL',
@ -72,7 +78,14 @@ class obtain_update_settings extends task_base
'label' => 'UPDATE_TYPE_DB_ONLY', 'label' => 'UPDATE_TYPE_DB_ONLY',
'selected' => false, 'selected' => false,
), ),
), );
}
$this->iohandler->add_user_form_group('UPDATE_TYPE', array(
'update_type' => array(
'label' => 'UPDATE_TYPE',
'type' => 'radio',
'options' => $options,
), ),
'submit_update' => array( 'submit_update' => array(
'label' => 'SUBMIT', 'label' => 'SUBMIT',

View file

@ -14,6 +14,7 @@
namespace phpbb\install\module\requirements\task; namespace phpbb\install\module\requirements\task;
use phpbb\filesystem\filesystem; use phpbb\filesystem\filesystem;
use phpbb\install\helper\config;
use phpbb\install\helper\container_factory; use phpbb\install\helper\container_factory;
use phpbb\install\helper\iohandler\iohandler_interface; use phpbb\install\helper\iohandler\iohandler_interface;
use phpbb\install\helper\update_helper; use phpbb\install\helper\update_helper;
@ -34,6 +35,11 @@ class check_update extends task_base
*/ */
protected $filesystem; protected $filesystem;
/**
* @var config
*/
protected $installer_config;
/** /**
* @var iohandler_interface * @var iohandler_interface
*/ */
@ -69,14 +75,16 @@ class check_update extends task_base
* *
* @param container_factory $container * @param container_factory $container
* @param filesystem $filesystem * @param filesystem $filesystem
* @param config $config
* @param iohandler_interface $iohandler * @param iohandler_interface $iohandler
* @param update_helper $update_helper * @param update_helper $update_helper
* @param string $phpbb_root_path * @param string $phpbb_root_path
* @param string $php_ext * @param string $php_ext
*/ */
public function __construct(container_factory $container, filesystem $filesystem, iohandler_interface $iohandler, update_helper $update_helper, $phpbb_root_path, $php_ext) public function __construct(container_factory $container, filesystem $filesystem, config $config, iohandler_interface $iohandler, update_helper $update_helper, $phpbb_root_path, $php_ext)
{ {
$this->filesystem = $filesystem; $this->filesystem = $filesystem;
$this->installer_config = $config;
$this->iohandler = $iohandler; $this->iohandler = $iohandler;
$this->update_helper = $update_helper; $this->update_helper = $update_helper;
$this->phpbb_root_path = $phpbb_root_path; $this->phpbb_root_path = $phpbb_root_path;
@ -117,8 +125,10 @@ class check_update extends task_base
$this->iohandler->add_error_message('UPDATE_FILES_NOT_FOUND'); $this->iohandler->add_error_message('UPDATE_FILES_NOT_FOUND');
$this->set_test_passed(false); $this->set_test_passed(false);
// If there are no update files, we can't check the version // If there are no update files, we can't check the version etc
return false; // However, we can let the users run migrations if they really want to...
$this->installer_config->set('disable_filesystem_update', true);
return true;
} }
// Recover version numbers // Recover version numbers