aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/install/install_install.php
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/install/install_install.php')
-rw-r--r--phpBB/install/install_install.php185
1 files changed, 111 insertions, 74 deletions
diff --git a/phpBB/install/install_install.php b/phpBB/install/install_install.php
index 5b818f9475..da6dcb085e 100644
--- a/phpBB/install/install_install.php
+++ b/phpBB/install/install_install.php
@@ -43,9 +43,15 @@ if (!empty($setmodules))
*/
class install_install extends module
{
+ /**
+ * @var \phpbb\filesystem\filesystem_interface
+ */
+ protected $filesystem;
+
function install_install(&$p_master)
{
$this->p_master = &$p_master;
+ $this->filesystem = new \phpbb\filesystem\filesystem();
}
function main($mode, $sub)
@@ -104,11 +110,14 @@ class install_install extends module
$request->enable_super_globals();
// Create a normal container now
- $phpbb_container_builder = new \phpbb\di\container_builder($phpbb_config_php_file, $phpbb_root_path, $phpEx);
- $phpbb_container = $phpbb_container_builder->get_container();
+ $phpbb_container_builder = new \phpbb\di\container_builder($phpbb_root_path, $phpEx);
+ $phpbb_container = $phpbb_container_builder->with_config($phpbb_config_php_file)->get_container();
// Sets the global variables
+ /* @var $cache \phpbb\cache\service */
$cache = $phpbb_container->get('cache');
+
+ /* @var $phpbb_log \phpbb\log\log_interface */
$phpbb_log = $phpbb_container->get('log');
$this->build_search_index($mode, $sub);
@@ -154,7 +163,7 @@ class install_install extends module
// Test the minimum PHP version
$php_version = PHP_VERSION;
- if (version_compare($php_version, '5.3.3') < 0)
+ if (version_compare($php_version, '5.4') < 0)
{
$result = '<strong style="color:red">' . $lang['NO'] . '</strong>';
}
@@ -463,13 +472,29 @@ class install_install extends module
if (!file_exists($phpbb_root_path . $dir))
{
@mkdir($phpbb_root_path . $dir, 0777);
- phpbb_chmod($phpbb_root_path . $dir, CHMOD_READ | CHMOD_WRITE);
+
+ try
+ {
+ $this->filesystem->phpbb_chmod($phpbb_root_path . $dir, CHMOD_READ | CHMOD_WRITE);
+ }
+ catch (\phpbb\filesystem\exception\filesystem_exception $e)
+ {
+ // Do nothing
+ }
}
// Now really check
if (file_exists($phpbb_root_path . $dir) && is_dir($phpbb_root_path . $dir))
{
- phpbb_chmod($phpbb_root_path . $dir, CHMOD_READ | CHMOD_WRITE);
+ try
+ {
+ $this->filesystem->phpbb_chmod($phpbb_root_path . $dir, CHMOD_READ | CHMOD_WRITE);
+ }
+ catch (\phpbb\filesystem\exception\filesystem_exception $e)
+ {
+ // Do nothing
+ }
+
$exists = true;
}
@@ -511,7 +536,7 @@ class install_install extends module
$write = $exists = true;
if (file_exists($phpbb_root_path . $dir))
{
- if (!phpbb_is_writable($phpbb_root_path . $dir))
+ if (!$this->filesystem->is_writable($phpbb_root_path . $dir))
{
$write = false;
}
@@ -889,7 +914,7 @@ class install_install extends module
$config_data = phpbb_create_config_file_data($data, $available_dbms[$data['dbms']]['DRIVER']);
// Attempt to write out the config file directly. If it works, this is the easiest way to do it ...
- if ((file_exists($phpbb_root_path . 'config.' . $phpEx) && phpbb_is_writable($phpbb_root_path . 'config.' . $phpEx)) || phpbb_is_writable($phpbb_root_path))
+ if ((file_exists($phpbb_root_path . 'config.' . $phpEx) && $this->filesystem->is_writable($phpbb_root_path . 'config.' . $phpEx)) || $this->filesystem->is_writable($phpbb_root_path))
{
// Assume it will work ... if nothing goes wrong below
$written = true;
@@ -911,7 +936,14 @@ class install_install extends module
if ($written)
{
// We may revert back to chmod() if we see problems with users not able to change their config.php file directly
- phpbb_chmod($phpbb_root_path . 'config.' . $phpEx, CHMOD_READ);
+ try
+ {
+ $this->filesystem->phpbb_chmod($phpbb_root_path . 'config.' . $phpEx, CHMOD_READ);
+ }
+ catch (\phpbb\filesystem\exception\filesystem_exception $e)
+ {
+ // Do nothing
+ }
}
}
@@ -1190,12 +1222,14 @@ class install_install extends module
include($phpbb_root_path . 'includes/constants.' . $phpEx);
}
- $finder = new \phpbb\finder(new \phpbb\filesystem(), $phpbb_root_path, null, $phpEx);
+ $finder = new \phpbb\finder(new \phpbb\filesystem\filesystem(), $phpbb_root_path, null, $phpEx);
$classes = $finder->core_path('phpbb/db/migration/data/')
->get_classes();
$sqlite_db = new \phpbb\db\driver\sqlite();
- $schema_generator = new \phpbb\db\migration\schema_generator($classes, new \phpbb\config\config(array()), $sqlite_db, new \phpbb\db\tools($sqlite_db, true), $phpbb_root_path, $phpEx, $table_prefix);
+ $factory = new \phpbb\db\tools\factory();
+ $db_tools = $factory->get($sqlite_db, true);
+ $schema_generator = new \phpbb\db\migration\schema_generator($classes, new \phpbb\config\config(array()), $sqlite_db, $db_tools, $phpbb_root_path, $phpEx, $table_prefix);
$db_table_schema = $schema_generator->get_schema();
}
@@ -1207,7 +1241,8 @@ class install_install extends module
define('CONFIG_TABLE', $data['table_prefix'] . 'config');
}
- $db_tools = new \phpbb\db\tools($db);
+ $factory = new \phpbb\db\tools\factory();
+ $db_tools = $factory->get($db);
foreach ($db_table_schema as $table_name => $table_data)
{
$db_tools->sql_create_table(
@@ -1487,9 +1522,7 @@ class install_install extends module
include_once($phpbb_root_path . 'phpbb/search/fulltext_native.' . $phpEx);
// We need to fill the config to let internal functions correctly work
- $config = new \phpbb\config\db($db, new \phpbb\cache\driver\null, CONFIG_TABLE);
- set_config(null, null, null, $config);
- set_config_count(null, null, null, $config);
+ $config = new \phpbb\config\db($db, new \phpbb\cache\driver\dummy, CONFIG_TABLE);
$error = false;
$search = new \phpbb\search\fulltext_native($error, $phpbb_root_path, $phpEx, $auth, $config, $db, $user, $phpbb_dispatcher);
@@ -1515,12 +1548,18 @@ class install_install extends module
// modules require an extension manager
if (empty($phpbb_extension_manager))
{
+ /* @var $phpbb_extension_manager \phpbb\extension\manager */
$phpbb_extension_manager = $phpbb_container->get('ext.manager');
}
- include_once($phpbb_root_path . 'includes/acp/acp_modules.' . $phpEx);
-
- $_module = new acp_modules();
+ $_module = new \phpbb\module\module_manager(
+ new \phpbb\cache\driver\dummy(),
+ $db,
+ $phpbb_extension_manager,
+ MODULES_TABLE,
+ $phpbb_root_path,
+ $phpEx
+ );
$module_classes = array('acp', 'mcp', 'ucp');
// Add categories
@@ -1551,7 +1590,7 @@ class install_install extends module
);
// Add category
- $_module->update_module_data($module_data, true);
+ $_module->update_module_data($module_data);
// Check for last sql error happened
if ($db->get_sql_error_triggered())
@@ -1585,7 +1624,7 @@ class install_install extends module
'module_auth' => '',
);
- $_module->update_module_data($module_data, true);
+ $_module->update_module_data($module_data);
// Check for last sql error happened
if ($db->get_sql_error_triggered())
@@ -1601,7 +1640,7 @@ class install_install extends module
}
// Get the modules we want to add... returned sorted by name
- $module_info = $_module->get_module_infos('', $module_class);
+ $module_info = $_module->get_module_infos($module_class);
foreach ($module_info as $module_basename => $fileinfo)
{
@@ -1625,7 +1664,7 @@ class install_install extends module
'module_auth' => $row['auth'],
);
- $_module->update_module_data($module_data, true);
+ $_module->update_module_data($module_data);
// Check for last sql error happened
if ($db->get_sql_error_triggered())
@@ -1650,7 +1689,7 @@ class install_install extends module
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
- $_module->move_module_by($row, 'move_up', 4);
+ $_module->move_module_by($row, 'acp', 'move_up', 4);
// Move permissions intro screen module 4 up...
$sql = 'SELECT *
@@ -1662,7 +1701,7 @@ class install_install extends module
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
- $_module->move_module_by($row, 'move_up', 4);
+ $_module->move_module_by($row, 'acp', 'move_up', 4);
// Move manage users screen module 5 up...
$sql = 'SELECT *
@@ -1674,7 +1713,7 @@ class install_install extends module
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
- $_module->move_module_by($row, 'move_up', 5);
+ $_module->move_module_by($row, 'acp', 'move_up', 5);
// Move extension management module 1 up...
$sql = 'SELECT *
@@ -1687,7 +1726,7 @@ class install_install extends module
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
- $_module->move_module_by($row, 'move_up', 1);
+ $_module->move_module_by($row, 'acp', 'move_up', 1);
}
if ($module_class == 'mcp')
@@ -1702,7 +1741,7 @@ class install_install extends module
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
- $_module->move_module_by($row, 'move_down', 3);
+ $_module->move_module_by($row, 'mcp', 'move_down', 3);
// Move closed pm reports module 3 down...
$sql = 'SELECT *
@@ -1714,7 +1753,7 @@ class install_install extends module
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
- $_module->move_module_by($row, 'move_down', 3);
+ $_module->move_module_by($row, 'mcp', 'move_down', 3);
// Move open pm reports module 3 down...
$sql = 'SELECT *
@@ -1726,7 +1765,7 @@ class install_install extends module
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
- $_module->move_module_by($row, 'move_down', 3);
+ $_module->move_module_by($row, 'mcp', 'move_down', 3);
}
if ($module_class == 'ucp')
@@ -1741,7 +1780,7 @@ class install_install extends module
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
- $_module->move_module_by($row, 'move_down', 4);
+ $_module->move_module_by($row, 'ucp', 'move_down', 4);
// Move notification options module 4 down...
$sql = 'SELECT *
@@ -1753,7 +1792,7 @@ class install_install extends module
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
- $_module->move_module_by($row, 'move_down', 4);
+ $_module->move_module_by($row, 'ucp', 'move_down', 4);
// Move OAuth module 5 down...
$sql = 'SELECT *
@@ -1765,7 +1804,7 @@ class install_install extends module
$row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
- $_module->move_module_by($row, 'move_down', 5);
+ $_module->move_module_by($row, 'ucp', 'move_down', 5);
}
// And now for the special ones
@@ -1804,7 +1843,7 @@ class install_install extends module
'module_auth' => $row['module_auth'],
);
- $_module->update_module_data($module_data, true);
+ $_module->update_module_data($module_data);
// Check for last sql error happened
if ($db->get_sql_error_triggered())
@@ -1816,7 +1855,7 @@ class install_install extends module
}
}
- $_module->remove_cache_file();
+ $_module->remove_cache_file($module_class);
}
}
@@ -1903,9 +1942,7 @@ class install_install extends module
$data = $this->get_submitted_data();
// We need to fill the config to let internal functions correctly work
- $config = new \phpbb\config\db($db, new \phpbb\cache\driver\null, CONFIG_TABLE);
- set_config(null, null, null, $config);
- set_config_count(null, null, null, $config);
+ $config = new \phpbb\config\db($db, new \phpbb\cache\driver\dummy, CONFIG_TABLE);
$sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . "
@@ -1969,7 +2006,7 @@ class install_install extends module
*/
function email_admin($mode, $sub)
{
- global $auth, $config, $db, $lang, $template, $user, $phpbb_root_path, $phpbb_admin_path, $phpEx;
+ global $auth, $config, $db, $lang, $template, $user, $phpbb_root_path, $phpbb_admin_path, $phpEx, $phpbb_log;
$this->page_title = $lang['STAGE_FINAL'];
@@ -1977,9 +2014,7 @@ class install_install extends module
$data = $this->get_submitted_data();
// We need to fill the config to let internal functions correctly work
- $config = new \phpbb\config\db($db, new \phpbb\cache\driver\null, CONFIG_TABLE);
- set_config(null, null, null, $config);
- set_config_count(null, null, null, $config);
+ $config = new \phpbb\config\db($db, new \phpbb\cache\driver\dummy, CONFIG_TABLE);
$user->session_begin();
$auth->login($data['admin_name'], $data['admin_pass1'], false, true, true);
@@ -2010,7 +2045,7 @@ class install_install extends module
}
// And finally, add a note to the log
- add_log('admin', 'LOG_INSTALL_INSTALLED', $config['version']);
+ $phpbb_log->add('admin', $user->data['user_id'], $user->ip, 'LOG_INSTALL_INSTALLED', false, array($config['version']));
$template->assign_vars(array(
'TITLE' => $lang['INSTALL_CONGRATS'],
@@ -2026,12 +2061,12 @@ class install_install extends module
*/
function disable_avatars_if_unwritable()
{
- global $phpbb_root_path;
+ global $config, $phpbb_root_path;
- if (!phpbb_is_writable($phpbb_root_path . 'images/avatars/upload/'))
+ if (!$this->filesystem->is_writable($phpbb_root_path . 'images/avatars/upload/'))
{
- set_config('allow_avatar', 0);
- set_config('allow_avatar_upload', 0);
+ $config->set('allow_avatar', 0);
+ $config->set('allow_avatar_upload', 0);
}
}
@@ -2078,36 +2113,38 @@ class install_install extends module
*/
function get_submitted_data()
{
+ global $request;
+
return array(
- 'language' => basename(request_var('language', '')),
- 'dbms' => request_var('dbms', ''),
- 'dbhost' => request_var('dbhost', '', true),
- 'dbport' => request_var('dbport', ''),
- 'dbuser' => request_var('dbuser', ''),
- 'dbpasswd' => request_var('dbpasswd', '', true),
- 'dbname' => request_var('dbname', ''),
- 'table_prefix' => request_var('table_prefix', ''),
- 'default_lang' => basename(request_var('default_lang', '')),
- 'admin_name' => utf8_normalize_nfc(request_var('admin_name', '', true)),
- 'admin_pass1' => request_var('admin_pass1', '', true),
- 'admin_pass2' => request_var('admin_pass2', '', true),
- 'board_email' => strtolower(request_var('board_email', '')),
- 'img_imagick' => request_var('img_imagick', ''),
- 'ftp_path' => request_var('ftp_path', ''),
- 'ftp_user' => request_var('ftp_user', ''),
- 'ftp_pass' => request_var('ftp_pass', ''),
- 'email_enable' => request_var('email_enable', ''),
- 'smtp_delivery' => request_var('smtp_delivery', ''),
- 'smtp_host' => request_var('smtp_host', ''),
- 'smtp_auth' => request_var('smtp_auth', ''),
- 'smtp_user' => request_var('smtp_user', ''),
- 'smtp_pass' => request_var('smtp_pass', ''),
- 'cookie_secure' => request_var('cookie_secure', ''),
- 'force_server_vars' => request_var('force_server_vars', ''),
- 'server_protocol' => request_var('server_protocol', ''),
- 'server_name' => request_var('server_name', ''),
- 'server_port' => request_var('server_port', ''),
- 'script_path' => request_var('script_path', ''),
+ 'language' => basename($request->variable('language', '')),
+ 'dbms' => $request->variable('dbms', ''),
+ 'dbhost' => $request->variable('dbhost', ''),
+ 'dbport' => $request->variable('dbport', ''),
+ 'dbuser' => $request->variable('dbuser', ''),
+ 'dbpasswd' => $request->variable('dbpasswd', '', true),
+ 'dbname' => $request->variable('dbname', ''),
+ 'table_prefix' => $request->variable('table_prefix', ''),
+ 'default_lang' => basename($request->variable('default_lang', '')),
+ 'admin_name' => $request->variable('admin_name', '', true),
+ 'admin_pass1' => $request->variable('admin_pass1', '', true),
+ 'admin_pass2' => $request->variable('admin_pass2', '', true),
+ 'board_email' => strtolower($request->variable('board_email', '')),
+ 'img_imagick' => $request->variable('img_imagick', ''),
+ 'ftp_path' => $request->variable('ftp_path', ''),
+ 'ftp_user' => $request->variable('ftp_user', ''),
+ 'ftp_pass' => $request->variable('ftp_pass', ''),
+ 'email_enable' => $request->variable('email_enable', ''),
+ 'smtp_delivery' => $request->variable('smtp_delivery', ''),
+ 'smtp_host' => $request->variable('smtp_host', ''),
+ 'smtp_auth' => $request->variable('smtp_auth', ''),
+ 'smtp_user' => $request->variable('smtp_user', ''),
+ 'smtp_pass' => $request->variable('smtp_pass', ''),
+ 'cookie_secure' => $request->variable('cookie_secure', ''),
+ 'force_server_vars' => $request->variable('force_server_vars', ''),
+ 'server_protocol' => $request->variable('server_protocol', ''),
+ 'server_name' => $request->variable('server_name', ''),
+ 'server_port' => $request->variable('server_port', ''),
+ 'script_path' => $request->variable('script_path', ''),
);
}