aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/install/helper/config.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/phpbb/install/helper/config.php')
-rw-r--r--phpBB/phpbb/install/helper/config.php40
1 files changed, 26 insertions, 14 deletions
diff --git a/phpBB/phpbb/install/helper/config.php b/phpBB/phpbb/install/helper/config.php
index 0f0840f470..fad6749019 100644
--- a/phpBB/phpbb/install/helper/config.php
+++ b/phpBB/phpbb/install/helper/config.php
@@ -96,7 +96,8 @@ class config
$this->system_data = array();
$this->progress_data = array(
'last_task_module_name' => '', // Stores the service name of the latest finished module
- 'last_task_name' => '', // Stores the service name of the latest finished task
+ 'last_task_module_index' => 0, // Stores the index of the latest finished module
+ 'last_task_index' => 0, // Stores the index of the latest finished task
'max_task_progress' => 0,
'current_task_progress' => 0,
'_restart_points' => array(),
@@ -157,10 +158,10 @@ class config
{
if ($this->system_data['max_execution_time'] <= 0)
{
- return 1;
+ return PHP_INT_MAX;
}
- return ($this->system_data['start_time'] + $this->system_data['max_execution_time']) - time();
+ return ($this->system_data['start_time'] + $this->system_data['max_execution_time']) - microtime(true);
}
/**
@@ -187,21 +188,23 @@ class config
/**
* Saves the latest executed task
*
- * @param string $task_service_name Name of the installer task service
+ * @param int $task_service_index Index of the installer task service in the module
*/
- public function set_finished_task($task_service_name)
+ public function set_finished_task($task_service_index)
{
- $this->progress_data['last_task_name'] = $task_service_name;
+ $this->progress_data['last_task_index'] = $task_service_index;
}
/**
* Set active module
*
* @param string $module_service_name Name of the installer module service
+ * @param int $module_service_index Index of the installer module service
*/
- public function set_active_module($module_service_name)
+ public function set_active_module($module_service_name, $module_service_index)
{
$this->progress_data['last_task_module_name'] = $module_service_name;
+ $this->progress_data['last_task_module_index'] = $module_service_index;
}
/**
@@ -227,18 +230,22 @@ class config
$file_content = @file_get_contents($this->install_config_file);
$serialized_data = trim(substr($file_content, 8));
- $this->installer_config = array();
- $this->progress_data = array();
- $this->navigation_data = array();
+ $installer_config = array();
+ $progress_data = array();
+ $navigation_data = array();
if (!empty($serialized_data))
{
$unserialized_data = json_decode($serialized_data, true);
- $this->installer_config = (is_array($unserialized_data['installer_config'])) ? $unserialized_data['installer_config'] : array();
- $this->progress_data = (is_array($unserialized_data['progress_data'])) ? $unserialized_data['progress_data'] : array();
- $this->navigation_data = (is_array($unserialized_data['navigation_data'])) ? $unserialized_data['navigation_data'] : array();
+ $installer_config = (is_array($unserialized_data['installer_config'])) ? $unserialized_data['installer_config'] : array();
+ $progress_data = (is_array($unserialized_data['progress_data'])) ? $unserialized_data['progress_data'] : array();
+ $navigation_data = (is_array($unserialized_data['navigation_data'])) ? $unserialized_data['navigation_data'] : array();
}
+
+ $this->installer_config = array_merge($this->installer_config, $installer_config);
+ $this->progress_data = array_merge($this->progress_data, $progress_data);
+ $this->navigation_data = array_merge($this->navigation_data, $navigation_data);
}
/**
@@ -387,6 +394,11 @@ class config
*/
public function set_finished_navigation_stage($nav_path)
{
+ if (isset($this->navigation_data['finished']) && in_array($nav_path, $this->navigation_data['finished']))
+ {
+ return;
+ }
+
$this->navigation_data['finished'][] = $nav_path;
}
@@ -430,7 +442,7 @@ class config
$this->system_data['max_execution_time'] = $execution_time;
// Set start time
- $this->system_data['start_time'] = time();
+ $this->system_data['start_time'] = microtime(true);
// Get memory limit
$this->system_data['memory_limit'] = $this->php_ini->getBytes('memory_limit');