mirror of
https://github.com/phpbb/phpbb.git
synced 2025-08-11 11:13:59 +02:00
[ticket/13740] Add navigation bar support for the installer
Also added various UI elements and texts. [ci skip] PHPBB3-13740
This commit is contained in:
@@ -157,13 +157,25 @@ class helper
|
||||
{
|
||||
// @todo Sort navs by order
|
||||
|
||||
foreach ($entry[0] as $sub_entry)
|
||||
foreach ($entry[0] as $name => $sub_entry)
|
||||
{
|
||||
$this->template->assign_block_vars('l_block1', array(
|
||||
'L_TITLE' => $this->language->lang($sub_entry['label']),
|
||||
'S_SELECTED' => (isset($sub_entry['route']) && $sub_entry['route'] === $this->request->get('_route')),
|
||||
'U_TITLE' => $this->route($sub_entry['route']),
|
||||
));
|
||||
if (isset($sub_entry['stage']) && $sub_entry['stage'] === true)
|
||||
{
|
||||
$this->template->assign_block_vars('l_block2', array(
|
||||
'L_TITLE' => $this->language->lang($sub_entry['label']),
|
||||
'S_SELECTED' => (isset($sub_entry['selected']) && $sub_entry['selected'] === true),
|
||||
'S_COMPLETE' => (isset($sub_entry['completed']) && $sub_entry['completed'] === true),
|
||||
'STAGE_NAME' => $name,
|
||||
));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->template->assign_block_vars('l_block1', array(
|
||||
'L_TITLE' => $this->language->lang($sub_entry['label']),
|
||||
'S_SELECTED' => (isset($sub_entry['route']) && $sub_entry['route'] === $this->request->get('_route')),
|
||||
'U_TITLE' => $this->route($sub_entry['route']),
|
||||
));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -13,7 +13,16 @@
|
||||
|
||||
namespace phpbb\install\controller;
|
||||
|
||||
use phpbb\install\helper\config;
|
||||
use phpbb\install\helper\navigation\navigation_provider;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use phpbb\install\helper\iohandler\factory;
|
||||
use phpbb\install\controller\helper;
|
||||
use phpbb\template\template;
|
||||
use phpbb\request\request_interface;
|
||||
use phpbb\install\installer;
|
||||
use phpbb\language\language;
|
||||
|
||||
/**
|
||||
* Controller for installing phpBB
|
||||
@@ -21,51 +30,72 @@ use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
class install
|
||||
{
|
||||
/**
|
||||
* @var \phpbb\install\controller\helper
|
||||
* @var helper
|
||||
*/
|
||||
protected $controller_helper;
|
||||
|
||||
/**
|
||||
* @var \phpbb\install\helper\iohandler\factory
|
||||
* @var config
|
||||
*/
|
||||
protected $installer_config;
|
||||
|
||||
/**
|
||||
* @var factory
|
||||
*/
|
||||
protected $iohandler_factory;
|
||||
|
||||
/**
|
||||
* @var \phpbb\template\template
|
||||
* @var navigation_provider
|
||||
*/
|
||||
protected $menu_provider;
|
||||
|
||||
/**
|
||||
* @var language
|
||||
*/
|
||||
protected $language;
|
||||
|
||||
/**
|
||||
* @var template
|
||||
*/
|
||||
protected $template;
|
||||
|
||||
/**
|
||||
* @var \phpbb\request\request_interface
|
||||
* @var request_interface
|
||||
*/
|
||||
protected $request;
|
||||
|
||||
/**
|
||||
* @var \phpbb\install\installer
|
||||
* @var installer
|
||||
*/
|
||||
protected $installer;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param helper $helper
|
||||
* @param \phpbb\install\helper\iohandler\factory $factory
|
||||
* @param \phpbb\request\request_interface $request
|
||||
* @param \phpbb\install\installer $installer
|
||||
* @param helper $helper
|
||||
* @param config $install_config
|
||||
* @param factory $factory
|
||||
* @param navigation_provider $nav_provider
|
||||
* @param language $language
|
||||
* @param request_interface $request
|
||||
* @param installer $installer
|
||||
*/
|
||||
public function __construct(helper $helper, \phpbb\install\helper\iohandler\factory $factory, \phpbb\template\template $template, \phpbb\request\request_interface $request, \phpbb\install\installer $installer)
|
||||
public function __construct(helper $helper, config $install_config, factory $factory, navigation_provider $nav_provider, language $language, template $template, request_interface $request, installer $installer)
|
||||
{
|
||||
$this->controller_helper = $helper;
|
||||
$this->iohandler_factory = $factory;
|
||||
$this->template = $template;
|
||||
$this->request = $request;
|
||||
$this->installer = $installer;
|
||||
$this->controller_helper = $helper;
|
||||
$this->installer_config = $install_config;
|
||||
$this->iohandler_factory = $factory;
|
||||
$this->menu_provider = $nav_provider;
|
||||
$this->language = $language;
|
||||
$this->template = $template;
|
||||
$this->request = $request;
|
||||
$this->installer = $installer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Controller logic
|
||||
*
|
||||
* @return \Symfony\Component\HttpFoundation\Response|StreamedResponse
|
||||
* @return Response|StreamedResponse
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
@@ -86,13 +116,38 @@ class install
|
||||
}
|
||||
|
||||
// Set the appropriate input-output handler
|
||||
//$this->installer->set_iohandler($this->iohandler_factory->get());
|
||||
$this->installer->set_iohandler($this->iohandler_factory->get());
|
||||
|
||||
// Set up navigation
|
||||
$nav_data = $this->installer_config->get_navigation_data();
|
||||
/** @var \phpbb\install\helper\iohandler\iohandler_interface $iohandler */
|
||||
$iohandler = $this->iohandler_factory->get();
|
||||
|
||||
// Set active navigation stage
|
||||
if (isset($nav_data['active']) && is_array($nav_data['active']))
|
||||
{
|
||||
$iohandler->set_active_stage_menu($nav_data['active']);
|
||||
$this->menu_provider->set_nav_property($nav_data['active'], array(
|
||||
'selected' => true,
|
||||
'completed' => false,
|
||||
));
|
||||
}
|
||||
|
||||
// Set finished navigation stages
|
||||
if (isset($nav_data['finished']) && is_array($nav_data['finished']))
|
||||
{
|
||||
foreach ($nav_data['finished'] as $finished_stage)
|
||||
{
|
||||
$iohandler->set_finished_stage_menu($finished_stage);
|
||||
$this->menu_provider->set_nav_property($finished_stage, array(
|
||||
'selected' => false,
|
||||
'completed' => true,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->request->is_ajax())
|
||||
{
|
||||
// @todo: remove this line, and use the above
|
||||
$this->installer->set_iohandler($this->iohandler_factory->get());
|
||||
|
||||
$installer = $this->installer;
|
||||
$response = new StreamedResponse();
|
||||
$response->setCallback(function() use ($installer) {
|
||||
@@ -106,9 +161,20 @@ class install
|
||||
// Determine whether the installation was started or not
|
||||
if (true)
|
||||
{
|
||||
// Set active stage
|
||||
$this->menu_provider->set_nav_property(
|
||||
array('install', 0, 'introduction'),
|
||||
array(
|
||||
'selected' => true,
|
||||
'completed' => false,
|
||||
)
|
||||
);
|
||||
|
||||
// If not, let's render the welcome page
|
||||
$this->template->assign_vars(array(
|
||||
'SHOW_INSTALL_START_FORM' => true,
|
||||
'SHOW_INSTALL_START_FORM' => true,
|
||||
'TITLE' => $this->language->lang('INSTALL_INTRO'),
|
||||
'CONTENT' => $this->language->lang('INSTALL_INTRO_BODY'),
|
||||
));
|
||||
return $this->controller_helper->render('installer_install.html', 'INSTALL');
|
||||
}
|
||||
|
@@ -13,7 +13,7 @@
|
||||
|
||||
namespace phpbb\install\controller;
|
||||
|
||||
class install_index
|
||||
class installer_index
|
||||
{
|
||||
/**
|
||||
* @var helper
|
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
/**
|
||||
*
|
||||
* This file is part of the phpBB Forum Software package.
|
||||
*
|
||||
* @copyright (c) phpBB Limited <https://www.phpbb.com>
|
||||
* @license GNU General Public License, version 2 (GPL-2.0)
|
||||
*
|
||||
* For full copyright and license information, please see
|
||||
* the docs/CREDITS.txt file.
|
||||
*
|
||||
*/
|
||||
|
||||
namespace phpbb\install\exception;
|
||||
|
||||
/**
|
||||
* Exception for the event when installer config is not writable to disk
|
||||
*/
|
||||
class installer_config_not_writable_exception extends installer_exception
|
||||
{
|
||||
|
||||
}
|
@@ -15,6 +15,9 @@ namespace phpbb\install\exception;
|
||||
|
||||
/**
|
||||
* This exception should be thrown when user interaction is inevitable
|
||||
*
|
||||
* Note: Please note that the output should already be setup for the user
|
||||
* when you use throw this exception
|
||||
*/
|
||||
class user_interaction_required_exception extends installer_exception
|
||||
{
|
||||
|
@@ -13,6 +13,8 @@
|
||||
|
||||
namespace phpbb\install\helper;
|
||||
|
||||
use phpbb\install\exception\installer_config_not_writable_exception;
|
||||
|
||||
/**
|
||||
* Stores common settings and installation status
|
||||
*/
|
||||
@@ -64,6 +66,13 @@ class config
|
||||
*/
|
||||
protected $system_data;
|
||||
|
||||
/**
|
||||
* Array containing navigation bar information
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $navigation_data;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
@@ -74,6 +83,7 @@ class config
|
||||
$this->phpbb_root_path = $phpbb_root_path;
|
||||
|
||||
// Set up data arrays
|
||||
$this->navigation_data = array();
|
||||
$this->installer_config = array();
|
||||
$this->system_data = array();
|
||||
$this->progress_data = array(
|
||||
@@ -206,6 +216,7 @@ class config
|
||||
|
||||
$this->installer_config = $unserialized_data['installer_config'];
|
||||
$this->progress_data = $unserialized_data['progress_data'];
|
||||
$this->navigation_data = $unserialized_data['navigation_data'];
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -217,6 +228,7 @@ class config
|
||||
$save_array = array(
|
||||
'installer_config' => $this->installer_config,
|
||||
'progress_data' => $this->progress_data,
|
||||
'navigation_data' => $this->navigation_data,
|
||||
);
|
||||
|
||||
// Create file content
|
||||
@@ -225,7 +237,12 @@ class config
|
||||
$file_content .= "\n";
|
||||
|
||||
// Dump file_content to disk
|
||||
$fp = fopen($this->install_config_file, 'w');
|
||||
$fp = @fopen($this->install_config_file, 'w');
|
||||
if (!$fp)
|
||||
{
|
||||
throw new installer_config_not_writable_exception();
|
||||
}
|
||||
|
||||
fwrite($fp, $file_content);
|
||||
fclose($fp);
|
||||
}
|
||||
@@ -285,6 +302,36 @@ class config
|
||||
return $this->progress_data['max_task_progress'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Marks stage as completed in the navigation bar
|
||||
*
|
||||
* @param array $nav_path Array to the navigation elem
|
||||
*/
|
||||
public function set_finished_navigation_stage($nav_path)
|
||||
{
|
||||
$this->navigation_data['finished'][] = $nav_path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Marks stage as active in the navigation bar
|
||||
*
|
||||
* @param array $nav_path Array to the navigation elem
|
||||
*/
|
||||
public function set_active_navigation_stage($nav_path)
|
||||
{
|
||||
$this->navigation_data['active'] = $nav_path;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns navigation data
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function get_navigation_data()
|
||||
{
|
||||
return $this->navigation_data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filling up system_data array
|
||||
*/
|
||||
|
@@ -33,6 +33,16 @@ class ajax_iohandler extends iohandler_base
|
||||
*/
|
||||
protected $form;
|
||||
|
||||
/**
|
||||
* @var bool
|
||||
*/
|
||||
protected $request_client_refresh;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $nav_data;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
@@ -44,6 +54,7 @@ class ajax_iohandler extends iohandler_base
|
||||
$this->request = $request;
|
||||
$this->template = $template;
|
||||
$this->form = '';
|
||||
$this->nav_data = array();
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
@@ -89,6 +100,8 @@ class ajax_iohandler extends iohandler_base
|
||||
// This code is pretty ugly... but works
|
||||
//
|
||||
|
||||
$this->template->assign_var('S_FORM_ELEM_COUNT', sizeof($form));
|
||||
|
||||
$this->template->assign_block_vars('options', array(
|
||||
'LEGEND' => $this->language->lang($title),
|
||||
'S_LEGEND' => true,
|
||||
@@ -187,9 +200,21 @@ class ajax_iohandler extends iohandler_base
|
||||
);
|
||||
}
|
||||
|
||||
if (!empty($this->nav_data))
|
||||
{
|
||||
$json_array['nav'] = $this->nav_data;
|
||||
}
|
||||
|
||||
$this->errors = array();
|
||||
$this->warnings = array();
|
||||
$this->logs = array();
|
||||
$this->nav_data = array();
|
||||
|
||||
if ($this->request_client_refresh)
|
||||
{
|
||||
$json_array['refresh'] = true;
|
||||
$this->request_client_refresh = false;
|
||||
}
|
||||
|
||||
return $json_array;
|
||||
}
|
||||
@@ -203,6 +228,32 @@ class ajax_iohandler extends iohandler_base
|
||||
$this->send_response();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function request_refresh()
|
||||
{
|
||||
$this->request_client_refresh = true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function set_active_stage_menu($menu_path)
|
||||
{
|
||||
$this->nav_data['active'] = $menu_path[sizeof($menu_path) - 1];
|
||||
$this->send_response();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function set_finished_stage_menu($menu_path)
|
||||
{
|
||||
$this->nav_data['finished'][] = $menu_path[sizeof($menu_path) - 1];
|
||||
$this->send_response();
|
||||
}
|
||||
|
||||
/**
|
||||
* Callback function for language replacing
|
||||
*
|
||||
|
@@ -64,6 +64,10 @@ class factory
|
||||
case 'ajax':
|
||||
return $this->container->get('installer.helper.iohandler_ajax');
|
||||
break;
|
||||
case 'nojs':
|
||||
// @todo replace this
|
||||
return $this->container->get('installer.helper.iohandler_ajax');
|
||||
break;
|
||||
default:
|
||||
throw new iohandler_not_implemented_exception();
|
||||
break;
|
||||
|
@@ -123,4 +123,23 @@ interface iohandler_interface
|
||||
* @param int $task_number Position of the current task in the task queue
|
||||
*/
|
||||
public function set_progress($task_lang_key, $task_number);
|
||||
|
||||
/**
|
||||
* Sends refresh request to the client
|
||||
*/
|
||||
public function request_refresh();
|
||||
|
||||
/**
|
||||
* Marks stage as active in the navigation bar
|
||||
*
|
||||
* @param array $menu_path Array to the navigation elem
|
||||
*/
|
||||
public function set_active_stage_menu($menu_path);
|
||||
|
||||
/**
|
||||
* Marks stage as completed in the navigation bar
|
||||
*
|
||||
* @param array $menu_path Array to the navigation elem
|
||||
*/
|
||||
public function set_finished_stage_menu($menu_path);
|
||||
}
|
||||
|
@@ -21,7 +21,29 @@ class install_navigation implements navigation_interface
|
||||
'install' => array(
|
||||
'label' => 'INSTALL',
|
||||
'route' => 'phpbb_installer_install',
|
||||
'order' => 0,
|
||||
'order' => 1,
|
||||
array(
|
||||
'introduction' => array(
|
||||
'label' => 'INTRODUCTION_TITLE',
|
||||
'stage' => true,
|
||||
'order' => 0,
|
||||
),
|
||||
'requirements' => array(
|
||||
'label' => 'STAGE_REQUIREMENTS',
|
||||
'stage' => true,
|
||||
'order' => 1,
|
||||
),
|
||||
'obtain_data' => array(
|
||||
'label' => 'STAGE_OBTAIN_DATA',
|
||||
'stage' => true,
|
||||
'order' => 2,
|
||||
),
|
||||
'install' => array(
|
||||
'label' => 'STAGE_INSTALL',
|
||||
'stage' => true,
|
||||
'order' => 3,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
@@ -13,6 +13,8 @@
|
||||
|
||||
namespace phpbb\install\helper\navigation;
|
||||
|
||||
use phpbb\di\service_collection;
|
||||
|
||||
/**
|
||||
* Installers navigation provider
|
||||
*/
|
||||
@@ -26,9 +28,9 @@ class navigation_provider
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param \phpbb\di\service_collection $plugins
|
||||
* @param service_collection $plugins
|
||||
*/
|
||||
public function __construct(\phpbb\di\service_collection $plugins)
|
||||
public function __construct(service_collection $plugins)
|
||||
{
|
||||
$this->menu_collection = array();
|
||||
|
||||
@@ -59,6 +61,27 @@ class navigation_provider
|
||||
$this->merge($nav_arry, $this->menu_collection);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a property in the navigation array
|
||||
*
|
||||
* @param array $nav_element Array to the navigation elem
|
||||
* @param array $property_array Array with the properties to set
|
||||
*/
|
||||
public function set_nav_property($nav_element, $property_array)
|
||||
{
|
||||
$array_pointer = array();
|
||||
$array_root_pointer = &$array_pointer;
|
||||
foreach ($nav_element as $array_path)
|
||||
{
|
||||
$array_pointer[$array_path] = array();
|
||||
$array_pointer = &$array_pointer[$array_path];
|
||||
}
|
||||
|
||||
$array_pointer = $property_array;
|
||||
|
||||
$this->merge($array_root_pointer, $this->menu_collection);
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursive array merge
|
||||
*
|
||||
|
@@ -13,6 +13,7 @@
|
||||
|
||||
namespace phpbb\install;
|
||||
|
||||
use phpbb\install\exception\installer_config_not_writable_exception;
|
||||
use phpbb\install\exception\invalid_service_name_exception;
|
||||
use phpbb\install\exception\module_not_found_exception;
|
||||
use phpbb\install\exception\task_not_found_exception;
|
||||
@@ -106,6 +107,10 @@ class installer
|
||||
// Flag used by exception handling, whether or not we need to flush output buffer once again
|
||||
$flush_messages = false;
|
||||
|
||||
// We are installing something, so the introduction stage can go now...
|
||||
$this->install_config->set_finished_navigation_stage(array('install', 0, 'introduction'));
|
||||
$this->iohandler->set_finished_stage_menu(array('install', 0, 'introduction'));
|
||||
|
||||
try
|
||||
{
|
||||
if ($this->install_config->get_task_progress_count() === 0)
|
||||
@@ -168,6 +173,9 @@ class installer
|
||||
// Check if module should be executed
|
||||
if (!$module->is_essential() && !$module->check_requirements())
|
||||
{
|
||||
$this->install_config->set_finished_navigation_stage($module->get_navigation_stage_path());
|
||||
$this->iohandler->set_finished_stage_menu($module->get_navigation_stage_path());
|
||||
|
||||
$this->iohandler->add_log_message(array(
|
||||
'SKIP_MODULE',
|
||||
$module_service_name,
|
||||
@@ -176,8 +184,15 @@ class installer
|
||||
continue;
|
||||
}
|
||||
|
||||
// Set the correct stage in the navigation bar
|
||||
$this->install_config->set_active_navigation_stage($module->get_navigation_stage_path());
|
||||
$this->iohandler->set_active_stage_menu($module->get_navigation_stage_path());
|
||||
|
||||
$module->run();
|
||||
|
||||
$this->install_config->set_finished_navigation_stage($module->get_navigation_stage_path());
|
||||
$this->iohandler->set_finished_stage_menu($module->get_navigation_stage_path());
|
||||
|
||||
// Clear task progress
|
||||
$this->install_config->set_finished_task('', 0);
|
||||
}
|
||||
@@ -189,12 +204,12 @@ class installer
|
||||
}
|
||||
else
|
||||
{
|
||||
// @todo: Send refresh request
|
||||
$this->iohandler->request_refresh();
|
||||
}
|
||||
}
|
||||
catch (user_interaction_required_exception $e)
|
||||
{
|
||||
// @todo handle exception
|
||||
// Do nothing
|
||||
}
|
||||
catch (module_not_found_exception $e)
|
||||
{
|
||||
@@ -234,7 +249,20 @@ class installer
|
||||
}
|
||||
|
||||
// Save install progress
|
||||
$this->install_config->save_config();
|
||||
try
|
||||
{
|
||||
$this->install_config->save_config();
|
||||
}
|
||||
catch (installer_config_not_writable_exception $e)
|
||||
{
|
||||
// It is allowed to fail this test during requirements testing
|
||||
$progress_data = $this->install_config->get_progress_data();
|
||||
|
||||
if ($progress_data['last_task_module_name'] !== 'installer.module.requirements_install')
|
||||
{
|
||||
$this->iohandler->add_error_message('INSTALLER_CONFIG_NOT_WRITABLE');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -18,5 +18,11 @@ namespace phpbb\install\module\install_data;
|
||||
*/
|
||||
class module extends \phpbb\install\module_base
|
||||
{
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function get_navigation_stage_path()
|
||||
{
|
||||
return array('install', 0, 'install');
|
||||
}
|
||||
}
|
||||
|
@@ -18,5 +18,11 @@ namespace phpbb\install\module\install_database;
|
||||
*/
|
||||
class module extends \phpbb\install\module_base
|
||||
{
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function get_navigation_stage_path()
|
||||
{
|
||||
return array('install', 0, 'install');
|
||||
}
|
||||
}
|
||||
|
@@ -18,5 +18,11 @@ namespace phpbb\install\module\install_filesystem;
|
||||
*/
|
||||
class module extends \phpbb\install\module_base
|
||||
{
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function get_navigation_stage_path()
|
||||
{
|
||||
return array('install', 0, 'install');
|
||||
}
|
||||
}
|
||||
|
@@ -18,5 +18,11 @@ namespace phpbb\install\module\install_finish;
|
||||
*/
|
||||
class module extends \phpbb\install\module_base
|
||||
{
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function get_navigation_stage_path()
|
||||
{
|
||||
return array('install', 0, 'install');
|
||||
}
|
||||
}
|
||||
|
@@ -15,6 +15,14 @@ namespace phpbb\install\module\obtain_data;
|
||||
|
||||
class module extends \phpbb\install\module_base
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function get_navigation_stage_path()
|
||||
{
|
||||
return array('install', 0, 'obtain_data');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
|
@@ -61,6 +61,15 @@ class module extends \phpbb\install\module_base
|
||||
if (!$tests_passed)
|
||||
{
|
||||
// If requirements are not met, exit form installer
|
||||
// Set up UI for retesting
|
||||
$this->iohandler->add_user_form_group('', array(
|
||||
'install' => array(
|
||||
'label' => 'RETEST_REQUIREMENTS',
|
||||
'type' => 'submit',
|
||||
),
|
||||
));
|
||||
|
||||
// Send the response and quit
|
||||
$this->iohandler->send_response();
|
||||
throw new user_interaction_required_exception();
|
||||
}
|
||||
@@ -77,4 +86,12 @@ class module extends \phpbb\install\module_base
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function get_navigation_stage_path()
|
||||
{
|
||||
return array('install', 0, 'requirements');
|
||||
}
|
||||
}
|
||||
|
@@ -75,8 +75,8 @@ abstract class module_base implements module_interface
|
||||
* Dependency getter
|
||||
*
|
||||
* @param ContainerInterface $container
|
||||
* @param config $config
|
||||
* @param iohandler_interface $iohandler
|
||||
* @param config $config
|
||||
* @param iohandler_interface $iohandler
|
||||
*/
|
||||
public function setup(ContainerInterface $container, config $config, iohandler_interface $iohandler)
|
||||
{
|
||||
|
@@ -53,4 +53,11 @@ interface module_interface
|
||||
* @return int
|
||||
*/
|
||||
public function get_step_count();
|
||||
|
||||
/**
|
||||
* Returns an array to the correct navigation stage
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function get_navigation_stage_path();
|
||||
}
|
||||
|
Reference in New Issue
Block a user