diff options
Diffstat (limited to 'phpBB/phpbb/install/helper/config.php')
-rw-r--r-- | phpBB/phpbb/install/helper/config.php | 40 |
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'); |