aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/install/module
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/install/module')
-rw-r--r--phpBB/install/module/install_data/module.php28
-rw-r--r--phpBB/install/module/install_data/task/add_bots.php240
-rw-r--r--phpBB/install/module/install_data/task/add_languages.php121
-rw-r--r--phpBB/install/module/install_data/task/add_modules.php468
-rw-r--r--phpBB/install/module/install_database/module.php28
-rw-r--r--phpBB/install/module/install_database/task/add_config_settings.php341
-rw-r--r--phpBB/install/module/install_database/task/add_default_data.php161
-rw-r--r--phpBB/install/module/install_database/task/create_schema.php214
-rw-r--r--phpBB/install/module/install_filesystem/module.php28
-rw-r--r--phpBB/install/module/install_filesystem/task/create_config_file.php235
-rw-r--r--phpBB/install/module/install_finish/module.php28
-rw-r--r--phpBB/install/module/install_finish/task/notify_user.php129
-rw-r--r--phpBB/install/module/install_finish/task/populate_migrations.php70
-rw-r--r--phpBB/install/module/obtain_data/module.php33
-rw-r--r--phpBB/install/module/obtain_data/task/obtain_admin_data.php219
-rw-r--r--phpBB/install/module/obtain_data/task/obtain_board_data.php186
-rw-r--r--phpBB/install/module/obtain_data/task/obtain_database_data.php271
-rw-r--r--phpBB/install/module/obtain_data/task/obtain_email_data.php167
-rw-r--r--phpBB/install/module/obtain_data/task/obtain_imagick_path.php89
-rw-r--r--phpBB/install/module/obtain_data/task/obtain_server_data.php203
-rw-r--r--phpBB/install/module/requirements/module.php97
-rw-r--r--phpBB/install/module/requirements/task/check_filesystem.php273
-rw-r--r--phpBB/install/module/requirements/task/check_server_environment.php190
23 files changed, 0 insertions, 3819 deletions
diff --git a/phpBB/install/module/install_data/module.php b/phpBB/install/module/install_data/module.php
deleted file mode 100644
index 77f1f73f1f..0000000000
--- a/phpBB/install/module/install_data/module.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?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\module\install_data;
-
-/**
- * Installer module for recovering and installing default data installation
- */
-class module extends \phpbb\install\module_base
-{
- /**
- * {@inheritdoc}
- */
- public function get_navigation_stage_path()
- {
- return array('install', 0, 'install');
- }
-}
diff --git a/phpBB/install/module/install_data/task/add_bots.php b/phpBB/install/module/install_data/task/add_bots.php
deleted file mode 100644
index c31700e97f..0000000000
--- a/phpBB/install/module/install_data/task/add_bots.php
+++ /dev/null
@@ -1,240 +0,0 @@
-<?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\module\install_data\task;
-
-class add_bots extends \phpbb\install\task_base
-{
- /**
- * @var array
- */
- protected $bot_list;
-
- /**
- * @var \phpbb\db\driver\driver_interface
- */
- protected $db;
-
- /**
- * @var \phpbb\install\helper\config
- */
- protected $install_config;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $io_handler;
-
- /**
- * @var \phpbb\language\language
- */
- protected $language;
-
- /**
- * @var string
- */
- protected $phpbb_root_path;
-
- /**
- * @var string
- */
- protected $php_ext;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\config $install_config Installer's config
- * @param \phpbb\install\helper\iohandler\iohandler_interface $iohandler Input-output handler for the installer
- * @param \phpbb\install\helper\container_factory $container Installer's DI container
- * @param \phpbb\language\language $language Language provider
- * @param string $phpbb_root_path Relative path to phpBB root
- * @param string $php_ext PHP extension
- */
- public function __construct(\phpbb\install\helper\config $install_config,
- \phpbb\install\helper\iohandler\iohandler_interface $iohandler,
- \phpbb\install\helper\container_factory $container,
- \phpbb\language\language $language,
- $phpbb_root_path,
- $php_ext)
- {
- parent::__construct(true);
-
- $this->db = $container->get('dbal.conn');
- $this->install_config = $install_config;
- $this->io_handler = $iohandler;
- $this->language = $language;
- $this->phpbb_root_path = $phpbb_root_path;
- $this->php_ext = $php_ext;
-
- /**
- * A list of the web-crawlers/bots we recognise by default
- *
- * Candidates but not included:
- * 'Accoona [Bot]' 'Accoona-AI-Agent/'
- * 'ASPseek [Crawler]' 'ASPseek/'
- * 'Boitho [Crawler]' 'boitho.com-dc/'
- * 'Bunnybot [Bot]' 'powered by www.buncat.de'
- * 'Cosmix [Bot]' 'cfetch/'
- * 'Crawler Search [Crawler]' '.Crawler-Search.de'
- * 'Findexa [Crawler]' 'Findexa Crawler ('
- * 'GBSpider [Spider]' 'GBSpider v'
- * 'genie [Bot]' 'genieBot ('
- * 'Hogsearch [Bot]' 'oegp v. 1.3.0'
- * 'Insuranco [Bot]' 'InsurancoBot'
- * 'IRLbot [Bot]' 'http://irl.cs.tamu.edu/crawler'
- * 'ISC Systems [Bot]' 'ISC Systems iRc Search'
- * 'Jyxobot [Bot]' 'Jyxobot/'
- * 'Kraehe [Metasuche]' '-DIE-KRAEHE- META-SEARCH-ENGINE/'
- * 'LinkWalker' 'LinkWalker'
- * 'MMSBot [Bot]' 'http://www.mmsweb.at/bot.html'
- * 'Naver [Bot]' 'nhnbot@naver.com)'
- * 'NetResearchServer' 'NetResearchServer/'
- * 'Nimble [Crawler]' 'NimbleCrawler'
- * 'Ocelli [Bot]' 'Ocelli/'
- * 'Onsearch [Bot]' 'onCHECK-Robot'
- * 'Orange [Spider]' 'OrangeSpider'
- * 'Sproose [Bot]' 'http://www.sproose.com/bot'
- * 'Susie [Sync]' '!Susie (http://www.sync2it.com/susie)'
- * 'Tbot [Bot]' 'Tbot/'
- * 'Thumbshots [Capture]' 'thumbshots-de-Bot'
- * 'Vagabondo [Crawler]' 'http://webagent.wise-guys.nl/'
- * 'Walhello [Bot]' 'appie 1.1 (www.walhello.com)'
- * 'WissenOnline [Bot]' 'WissenOnline-Bot'
- * 'WWWeasel [Bot]' 'WWWeasel Robot v'
- * 'Xaldon [Spider]' 'Xaldon WebSpider'
- */
- $this->bot_list = array(
- 'AdsBot [Google]' => array('AdsBot-Google', ''),
- 'Alexa [Bot]' => array('ia_archiver', ''),
- 'Alta Vista [Bot]' => array('Scooter/', ''),
- 'Ask Jeeves [Bot]' => array('Ask Jeeves', ''),
- 'Baidu [Spider]' => array('Baiduspider', ''),
- 'Bing [Bot]' => array('bingbot/', ''),
- 'Exabot [Bot]' => array('Exabot', ''),
- 'FAST Enterprise [Crawler]' => array('FAST Enterprise Crawler', ''),
- 'FAST WebCrawler [Crawler]' => array('FAST-WebCrawler/', ''),
- 'Francis [Bot]' => array('http://www.neomo.de/', ''),
- 'Gigabot [Bot]' => array('Gigabot/', ''),
- 'Google Adsense [Bot]' => array('Mediapartners-Google', ''),
- 'Google Desktop' => array('Google Desktop', ''),
- 'Google Feedfetcher' => array('Feedfetcher-Google', ''),
- 'Google [Bot]' => array('Googlebot', ''),
- 'Heise IT-Markt [Crawler]' => array('heise-IT-Markt-Crawler', ''),
- 'Heritrix [Crawler]' => array('heritrix/1.', ''),
- 'IBM Research [Bot]' => array('ibm.com/cs/crawler', ''),
- 'ICCrawler - ICjobs' => array('ICCrawler - ICjobs', ''),
- 'ichiro [Crawler]' => array('ichiro/', ''),
- 'Majestic-12 [Bot]' => array('MJ12bot/', ''),
- 'Metager [Bot]' => array('MetagerBot/', ''),
- 'MSN NewsBlogs' => array('msnbot-NewsBlogs/', ''),
- 'MSN [Bot]' => array('msnbot/', ''),
- 'MSNbot Media' => array('msnbot-media/', ''),
- 'Nutch [Bot]' => array('http://lucene.apache.org/nutch/', ''),
- 'Online link [Validator]' => array('online link validator', ''),
- 'psbot [Picsearch]' => array('psbot/0', ''),
- 'Sensis [Crawler]' => array('Sensis Web Crawler', ''),
- 'SEO Crawler' => array('SEO search Crawler/', ''),
- 'Seoma [Crawler]' => array('Seoma [SEO Crawler]', ''),
- 'SEOSearch [Crawler]' => array('SEOsearch/', ''),
- 'Snappy [Bot]' => array('Snappy/1.1 ( http://www.urltrends.com/ )', ''),
- 'Steeler [Crawler]' => array('http://www.tkl.iis.u-tokyo.ac.jp/~crawler/', ''),
- 'Telekom [Bot]' => array('crawleradmin.t-info@telekom.de', ''),
- 'TurnitinBot [Bot]' => array('TurnitinBot/', ''),
- 'Voyager [Bot]' => array('voyager/', ''),
- 'W3 [Sitesearch]' => array('W3 SiteSearch Crawler', ''),
- 'W3C [Linkcheck]' => array('W3C-checklink/', ''),
- 'W3C [Validator]' => array('W3C_Validator', ''),
- 'YaCy [Bot]' => array('yacybot', ''),
- 'Yahoo MMCrawler [Bot]' => array('Yahoo-MMCrawler/', ''),
- 'Yahoo Slurp [Bot]' => array('Yahoo! DE Slurp', ''),
- 'Yahoo [Bot]' => array('Yahoo! Slurp', ''),
- 'YahooSeeker [Bot]' => array('YahooSeeker/', ''),
- );
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- $this->db->sql_return_on_error(true);
-
- $sql = 'SELECT group_id
- FROM ' . GROUPS_TABLE . "
- WHERE group_name = 'BOTS'";
- $result = $this->db->sql_query($sql);
- $group_id = (int) $this->db->sql_fetchfield('group_id');
- $this->db->sql_freeresult($result);
-
- if (!$group_id)
- {
- // If we reach this point then something has gone very wrong
- $this->io_handler->add_error_message('NO_GROUP');
- }
-
- foreach ($this->bot_list as $bot_name => $bot_ary)
- {
- $user_row = array(
- 'user_type' => USER_IGNORE,
- 'group_id' => $group_id,
- 'username' => $bot_name,
- 'user_regdate' => time(),
- 'user_password' => '',
- 'user_colour' => '9E8DA7',
- 'user_email' => '',
- 'user_lang' => $this->install_config->get('default_lang'),
- 'user_style' => 1,
- 'user_timezone' => 'UTC',
- 'user_dateformat' => $this->language->lang('default_dateformat'),
- 'user_allow_massemail' => 0,
- 'user_allow_pm' => 0,
- );
-
- $user_id = user_add($user_row);
-
- if (!$user_id)
- {
- // If we can't insert this user then continue to the next one to avoid inconsistent data
- $this->io_handler->add_error_message('CONV_ERROR_INSERT_BOT');
-
- continue;
- }
-
- $sql = 'INSERT INTO ' . BOTS_TABLE . ' ' . $this->db->sql_build_array('INSERT', array(
- 'bot_active' => 1,
- 'bot_name' => (string) $bot_name,
- 'user_id' => (int) $user_id,
- 'bot_agent' => (string) $bot_ary[0],
- 'bot_ip' => (string) $bot_ary[1],
- ));
-
- $this->db->sql_query($sql);
- }
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 1;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return 'TASK_ADD_BOTS';
- }
-}
diff --git a/phpBB/install/module/install_data/task/add_languages.php b/phpBB/install/module/install_data/task/add_languages.php
deleted file mode 100644
index 7ffdf4f276..0000000000
--- a/phpBB/install/module/install_data/task/add_languages.php
+++ /dev/null
@@ -1,121 +0,0 @@
-<?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\module\install_data\task;
-
-class add_languages extends \phpbb\install\task_base
-{
- /**
- * @var \phpbb\db\driver\driver_interface
- */
- protected $db;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $iohandler;
-
- /**
- * @var \phpbb\language\language_file_helper
- */
- protected $language_helper;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\iohandler\iohandler_interface $iohandler Installer's input-output handler
- * @param \phpbb\install\helper\container_factory $container Installer's DI container
- * @param \phpbb\language\language_file_helper $language_helper Language file helper service
- */
- public function __construct(\phpbb\install\helper\iohandler\iohandler_interface $iohandler,
- \phpbb\install\helper\container_factory $container,
- \phpbb\language\language_file_helper $language_helper)
- {
- $this->db = $container->get('dbal.conn');
- $this->iohandler = $iohandler;
- $this->language_helper = $language_helper;
-
- parent::__construct(true);
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- $this->db->sql_return_on_error(true);
-
- $languages = $this->language_helper->get_available_languages();
- $installed_languages = array();
-
- foreach ($languages as $lang_info)
- {
- $lang_pack = array(
- 'lang_iso' => $lang_info['iso'],
- 'lang_dir' => $lang_info['iso'],
- 'lang_english_name' => htmlspecialchars($lang_info['name']),
- 'lang_local_name' => htmlspecialchars($lang_info['local_name'], ENT_COMPAT, 'UTF-8'),
- 'lang_author' => htmlspecialchars($lang_info['author'], ENT_COMPAT, 'UTF-8'),
- );
-
- $this->db->sql_query('INSERT INTO ' . LANG_TABLE . ' ' . $this->db->sql_build_array('INSERT', $lang_pack));
-
- $installed_languages[] = (int) $this->db->sql_nextid();
- if ($this->db->get_sql_error_triggered())
- {
- $error = $this->db->sql_error($this->db->get_sql_error_sql());
- $this->iohandler->add_error_message($error['message']);
- }
- }
-
- $sql = 'SELECT * FROM ' . PROFILE_FIELDS_TABLE;
- $result = $this->db->sql_query($sql);
-
- $insert_buffer = new \phpbb\db\sql_insert_buffer($this->db, PROFILE_LANG_TABLE);
- while ($row = $this->db->sql_fetchrow($result))
- {
- foreach ($installed_languages as $lang_id)
- {
- $insert_buffer->insert(array(
- 'field_id' => $row['field_id'],
- 'lang_id' => $lang_id,
-
- // Remove phpbb_ from field name
- 'lang_name' => strtoupper(substr($row['field_name'], 6)),
- 'lang_explain' => '',
- 'lang_default_value' => '',
- ));
- }
- }
-
- $this->db->sql_freeresult($result);
-
- $insert_buffer->flush();
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 1;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return 'TASK_ADD_LANGUAGES';
- }
-}
diff --git a/phpBB/install/module/install_data/task/add_modules.php b/phpBB/install/module/install_data/task/add_modules.php
deleted file mode 100644
index 6a77f8973b..0000000000
--- a/phpBB/install/module/install_data/task/add_modules.php
+++ /dev/null
@@ -1,468 +0,0 @@
-<?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\module\install_data\task;
-
-class add_modules extends \phpbb\install\task_base
-{
- /**
- * @var \phpbb\db\driver\driver_interface
- */
- protected $db;
-
- /**
- * @var \phpbb\extension\manager
- */
- protected $extension_manager;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $iohandler;
-
- /**
- * @var \phpbb\module\module_manager
- */
- protected $module_manager;
-
- /**
- * Define the module structure so that we can populate the database without
- * needing to hard-code module_id values
- *
- * @var array
- */
- protected $module_categories;
-
- /**
- * @var array
- */
- protected $module_categories_basenames;
-
- /**
- * @var array
- */
- protected $module_extras;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\iohandler\iohandler_interface $iohandler Installer's input-output handler
- * @param \phpbb\install\helper\container_factory $container Installer's DI container
- */
- public function __construct(\phpbb\install\helper\iohandler\iohandler_interface $iohandler,
- \phpbb\install\helper\container_factory $container)
- {
- $this->db = $container->get('dbal.conn');
- $this->extension_manager = $container->get('ext.manager');
- $this->iohandler = $iohandler;
- $this->module_manager = $container->get('module.manager');
-
- parent::__construct(true);
-
- $this->module_categories = array(
- 'acp' => array(
- 'ACP_CAT_GENERAL' => array(
- 'ACP_QUICK_ACCESS',
- 'ACP_BOARD_CONFIGURATION',
- 'ACP_CLIENT_COMMUNICATION',
- 'ACP_SERVER_CONFIGURATION',
- ),
- 'ACP_CAT_FORUMS' => array(
- 'ACP_MANAGE_FORUMS',
- 'ACP_FORUM_BASED_PERMISSIONS',
- ),
- 'ACP_CAT_POSTING' => array(
- 'ACP_MESSAGES',
- 'ACP_ATTACHMENTS',
- ),
- 'ACP_CAT_USERGROUP' => array(
- 'ACP_CAT_USERS',
- 'ACP_GROUPS',
- 'ACP_USER_SECURITY',
- ),
- 'ACP_CAT_PERMISSIONS' => array(
- 'ACP_GLOBAL_PERMISSIONS',
- 'ACP_FORUM_BASED_PERMISSIONS',
- 'ACP_PERMISSION_ROLES',
- 'ACP_PERMISSION_MASKS',
- ),
- 'ACP_CAT_CUSTOMISE' => array(
- 'ACP_STYLE_MANAGEMENT',
- 'ACP_EXTENSION_MANAGEMENT',
- 'ACP_LANGUAGE',
- ),
- 'ACP_CAT_MAINTENANCE' => array(
- 'ACP_FORUM_LOGS',
- 'ACP_CAT_DATABASE',
- ),
- 'ACP_CAT_SYSTEM' => array(
- 'ACP_AUTOMATION',
- 'ACP_GENERAL_TASKS',
- 'ACP_MODULE_MANAGEMENT',
- ),
- 'ACP_CAT_DOT_MODS' => null,
- ),
- 'mcp' => array(
- 'MCP_MAIN' => null,
- 'MCP_QUEUE' => null,
- 'MCP_REPORTS' => null,
- 'MCP_NOTES' => null,
- 'MCP_WARN' => null,
- 'MCP_LOGS' => null,
- 'MCP_BAN' => null,
- ),
- 'ucp' => array(
- 'UCP_MAIN' => null,
- 'UCP_PROFILE' => null,
- 'UCP_PREFS' => null,
- 'UCP_PM' => null,
- 'UCP_USERGROUPS' => null,
- 'UCP_ZEBRA' => null,
- ),
- );
-
- $this->module_categories_basenames = array(
- 'UCP_PM' => 'ucp_pm',
- );
-
- $this->module_extras = array(
- 'acp' => array(
- 'ACP_QUICK_ACCESS' => array(
- 'ACP_MANAGE_USERS',
- 'ACP_GROUPS_MANAGE',
- 'ACP_MANAGE_FORUMS',
- 'ACP_MOD_LOGS',
- 'ACP_BOTS',
- 'ACP_PHP_INFO',
- ),
- 'ACP_FORUM_BASED_PERMISSIONS' => array(
- 'ACP_FORUM_PERMISSIONS',
- 'ACP_FORUM_PERMISSIONS_COPY',
- 'ACP_FORUM_MODERATORS',
- 'ACP_USERS_FORUM_PERMISSIONS',
- 'ACP_GROUPS_FORUM_PERMISSIONS',
- ),
- ),
- );
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- $this->db->sql_return_on_error(true);
-
- $module_classes = array('acp', 'mcp', 'ucp');
- foreach ($module_classes as $module_class)
- {
- $categories = array();
-
- foreach ($this->module_categories[$module_class] as $cat_name => $subs)
- {
- // Check if this sub-category has a basename. If it has, use it.
- $basename = (isset($this->module_categories_basenames[$cat_name])) ? $this->module_categories_basenames[$cat_name] : '';
-
- $module_data = array(
- 'module_basename' => $basename,
- 'module_enabled' => 1,
- 'module_display' => 1,
- 'parent_id' => 0,
- 'module_class' => $module_class,
- 'module_langname' => $cat_name,
- 'module_mode' => '',
- 'module_auth' => '',
- );
-
- $this->module_manager->update_module_data($module_data);
-
- // Check for last sql error happened
- if ($this->db->get_sql_error_triggered())
- {
- $error = $this->db->sql_error($this->db->get_sql_error_sql());
- $this->iohandler->add_error_message('INST_ERR_DB', $error['message']);
- }
-
- $categories[$cat_name]['id'] = (int)$module_data['module_id'];
- $categories[$cat_name]['parent_id'] = 0;
-
- if (is_array($subs))
- {
- foreach ($subs as $level2_name)
- {
- // Check if this sub-category has a basename. If it has, use it.
- $basename = (isset($this->module_categories_basenames[$level2_name])) ? $this->module_categories_basenames[$level2_name] : '';
-
- $module_data = array(
- 'module_basename' => $basename,
- 'module_enabled' => 1,
- 'module_display' => 1,
- 'parent_id' => (int)$categories[$cat_name]['id'],
- 'module_class' => $module_class,
- 'module_langname' => $level2_name,
- 'module_mode' => '',
- 'module_auth' => '',
- );
-
- $this->module_manager->update_module_data($module_data);
-
- // Check for last sql error happened
- if ($this->db->get_sql_error_triggered())
- {
- $error = $this->db->sql_error($this->db->get_sql_error_sql());
- $this->iohandler->add_error_message('INST_ERR_DB', $error['message']);
- }
-
- $categories[$level2_name]['id'] = (int)$module_data['module_id'];
- $categories[$level2_name]['parent_id'] = (int)$categories[$cat_name]['id'];
- }
- }
- }
-
- // Get the modules we want to add... returned sorted by name
- $module_info = $this->module_manager->get_module_infos($module_class);
-
- foreach ($module_info as $module_basename => $fileinfo)
- {
- foreach ($fileinfo['modes'] as $module_mode => $row)
- {
- foreach ($row['cat'] as $cat_name)
- {
- if (!isset($categories[$cat_name]))
- {
- continue;
- }
-
- $module_data = array(
- 'module_basename' => $module_basename,
- 'module_enabled' => 1,
- 'module_display' => (isset($row['display'])) ? (int) $row['display'] : 1,
- 'parent_id' => (int) $categories[$cat_name]['id'],
- 'module_class' => $module_class,
- 'module_langname' => $row['title'],
- 'module_mode' => $module_mode,
- 'module_auth' => $row['auth'],
- );
-
- $this->module_manager->update_module_data($module_data);
-
- // Check for last sql error happened
- if ($this->db->get_sql_error_triggered())
- {
- $error = $this->db->sql_error($this->db->get_sql_error_sql());
- $this->iohandler->add_error_message('INST_ERR_DB', $error['message']);
- }
- }
- }
- }
-
- // Move some of the modules around since the code above will put them in the wrong place
- if ($module_class === 'acp')
- {
- // Move main module 4 up...
- $sql = 'SELECT *
- FROM ' . MODULES_TABLE . "
- WHERE module_basename = 'acp_main'
- AND module_class = 'acp'
- AND module_mode = 'main'";
- $result = $this->db->sql_query($sql);
- $row = $this->db->sql_fetchrow($result);
- $this->db->sql_freeresult($result);
-
- $this->module_manager->move_module_by($row, 'acp', 'move_up', 4);
-
- // Move permissions intro screen module 4 up...
- $sql = 'SELECT *
- FROM ' . MODULES_TABLE . "
- WHERE module_basename = 'acp_permissions'
- AND module_class = 'acp'
- AND module_mode = 'intro'";
- $result = $this->db->sql_query($sql);
- $row = $this->db->sql_fetchrow($result);
- $this->db->sql_freeresult($result);
-
- $this->module_manager->move_module_by($row, 'acp', 'move_up', 4);
-
- // Move manage users screen module 5 up...
- $sql = 'SELECT *
- FROM ' . MODULES_TABLE . "
- WHERE module_basename = 'acp_users'
- AND module_class = 'acp'
- AND module_mode = 'overview'";
- $result = $this->db->sql_query($sql);
- $row = $this->db->sql_fetchrow($result);
- $this->db->sql_freeresult($result);
-
- $this->module_manager->move_module_by($row, 'acp', 'move_up', 5);
-
- // Move extension management module 1 up...
- $sql = 'SELECT *
- FROM ' . MODULES_TABLE . "
- WHERE module_langname = 'ACP_EXTENSION_MANAGEMENT'
- AND module_class = 'acp'
- AND module_mode = ''
- AND module_basename = ''";
- $result = $this->db->sql_query($sql);
- $row = $this->db->sql_fetchrow($result);
- $this->db->sql_freeresult($result);
-
- $this->module_manager->move_module_by($row, 'acp', 'move_up', 1);
- }
-
- if ($module_class == 'mcp')
- {
- // Move pm report details module 3 down...
- $sql = 'SELECT *
- FROM ' . MODULES_TABLE . "
- WHERE module_basename = 'mcp_pm_reports'
- AND module_class = 'mcp'
- AND module_mode = 'pm_report_details'";
- $result = $this->db->sql_query($sql);
- $row = $this->db->sql_fetchrow($result);
- $this->db->sql_freeresult($result);
-
- $this->module_manager->move_module_by($row, 'mcp', 'move_down', 3);
-
- // Move closed pm reports module 3 down...
- $sql = 'SELECT *
- FROM ' . MODULES_TABLE . "
- WHERE module_basename = 'mcp_pm_reports'
- AND module_class = 'mcp'
- AND module_mode = 'pm_reports_closed'";
- $result = $this->db->sql_query($sql);
- $row = $this->db->sql_fetchrow($result);
- $this->db->sql_freeresult($result);
-
- $this->module_manager->move_module_by($row, 'mcp', 'move_down', 3);
-
- // Move open pm reports module 3 down...
- $sql = 'SELECT *
- FROM ' . MODULES_TABLE . "
- WHERE module_basename = 'mcp_pm_reports'
- AND module_class = 'mcp'
- AND module_mode = 'pm_reports'";
- $result = $this->db->sql_query($sql);
- $row = $this->db->sql_fetchrow($result);
- $this->db->sql_freeresult($result);
-
- $this->module_manager->move_module_by($row, 'mcp', 'move_down', 3);
- }
-
- if ($module_class == 'ucp')
- {
- // Move attachment module 4 down...
- $sql = 'SELECT *
- FROM ' . MODULES_TABLE . "
- WHERE module_basename = 'ucp_attachments'
- AND module_class = 'ucp'
- AND module_mode = 'attachments'";
- $result = $this->db->sql_query($sql);
- $row = $this->db->sql_fetchrow($result);
- $this->db->sql_freeresult($result);
-
- $this->module_manager->move_module_by($row, 'ucp', 'move_down', 4);
-
- // Move notification options module 4 down...
- $sql = 'SELECT *
- FROM ' . MODULES_TABLE . "
- WHERE module_basename = 'ucp_notifications'
- AND module_class = 'ucp'
- AND module_mode = 'notification_options'";
- $result = $this->db->sql_query($sql);
- $row = $this->db->sql_fetchrow($result);
- $this->db->sql_freeresult($result);
-
- $this->module_manager->move_module_by($row, 'ucp', 'move_down', 4);
-
- // Move OAuth module 5 down...
- $sql = 'SELECT *
- FROM ' . MODULES_TABLE . "
- WHERE module_basename = 'ucp_auth_link'
- AND module_class = 'ucp'
- AND module_mode = 'auth_link'";
- $result = $this->db->sql_query($sql);
- $row = $this->db->sql_fetchrow($result);
- $this->db->sql_freeresult($result);
-
- $this->module_manager->move_module_by($row, 'ucp', 'move_down', 5);
- }
-
- // And now for the special ones
- // (these are modules which appear in multiple categories and thus get added manually
- // to some for more control)
- if (isset($this->module_extras[$module_class]))
- {
- foreach ($this->module_extras[$module_class] as $cat_name => $mods)
- {
- $sql = 'SELECT module_id, left_id, right_id
- FROM ' . MODULES_TABLE . "
- WHERE module_langname = '" . $this->db->sql_escape($cat_name) . "'
- AND module_class = '" . $this->db->sql_escape($module_class) . "'";
- $result = $this->db->sql_query_limit($sql, 1);
- $row2 = $this->db->sql_fetchrow($result);
- $this->db->sql_freeresult($result);
-
- foreach ($mods as $mod_name)
- {
- $sql = 'SELECT *
- FROM ' . MODULES_TABLE . "
- WHERE module_langname = '" . $this->db->sql_escape($mod_name) . "'
- AND module_class = '" . $this->db->sql_escape($module_class) . "'
- AND module_basename <> ''";
- $result = $this->db->sql_query_limit($sql, 1);
- $row = $this->db->sql_fetchrow($result);
- $this->db->sql_freeresult($result);
-
- $module_data = array(
- 'module_basename' => $row['module_basename'],
- 'module_enabled' => (int) $row['module_enabled'],
- 'module_display' => (int) $row['module_display'],
- 'parent_id' => (int) $row2['module_id'],
- 'module_class' => $row['module_class'],
- 'module_langname' => $row['module_langname'],
- 'module_mode' => $row['module_mode'],
- 'module_auth' => $row['module_auth'],
- );
-
- $this->module_manager->update_module_data($module_data);
-
- // Check for last sql error happened
- if ($this->db->get_sql_error_triggered())
- {
- $error = $this->db->sql_error($this->db->get_sql_error_sql());
- $this->iohandler->add_error_message('INST_ERR_DB', $error['message']);
- }
- }
- }
- }
-
- $this->module_manager->remove_cache_file($module_class);
- }
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 1;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return 'TASK_ADD_MODULES';
- }
-}
diff --git a/phpBB/install/module/install_database/module.php b/phpBB/install/module/install_database/module.php
deleted file mode 100644
index 0d8b33087f..0000000000
--- a/phpBB/install/module/install_database/module.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?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\module\install_database;
-
-/**
- * Installer module for database installation
- */
-class module extends \phpbb\install\module_base
-{
- /**
- * {@inheritdoc}
- */
- public function get_navigation_stage_path()
- {
- return array('install', 0, 'install');
- }
-}
diff --git a/phpBB/install/module/install_database/task/add_config_settings.php b/phpBB/install/module/install_database/task/add_config_settings.php
deleted file mode 100644
index 25da36e01d..0000000000
--- a/phpBB/install/module/install_database/task/add_config_settings.php
+++ /dev/null
@@ -1,341 +0,0 @@
-<?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\module\install_database\task;
-
-/**
- * Create database schema
- */
-class add_config_settings extends \phpbb\install\task_base
-{
- /**
- * @var \phpbb\db\driver\driver_interface
- */
- protected $db;
-
- /**
- * @var \phpbb\filesystem\filesystem_interface
- */
- protected $filesystem;
-
- /**
- * @var \phpbb\install\helper\config
- */
- protected $install_config;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $iohandler;
-
- /**
- * @var \phpbb\language\language
- */
- protected $language;
-
- /**
- * @var \phpbb\passwords\manager
- */
- protected $password_manager;
-
- /**
- * @var string
- */
- protected $phpbb_root_path;
-
- /**
- * @var string
- */
- protected $config_table;
-
- /**
- * @var string
- */
- protected $user_table;
-
- /**
- * @var string
- */
- protected $topics_table;
-
- /**
- * @var string
- */
- protected $forums_table;
-
- /**
- * @var string
- */
- protected $posts_table;
-
- /**
- * @var string
- */
- protected $moderator_cache_table;
-
- /**
- * Constructor
- *
- * @param \phpbb\filesystem\filesystem_interface $filesystem Filesystem service
- * @param \phpbb\install\helper\config $install_config Installer's config helper
- * @param \phpbb\install\helper\iohandler\iohandler_interface $iohandler Installer's input-output handler
- * @param \phpbb\install\helper\container_factory $container Installer's DI container
- * @param \phpbb\language\language $language Language service
- * @param string $phpbb_root_path Path to phpBB's root
- */
- public function __construct(\phpbb\filesystem\filesystem_interface $filesystem,
- \phpbb\install\helper\config $install_config,
- \phpbb\install\helper\iohandler\iohandler_interface $iohandler,
- \phpbb\install\helper\container_factory $container,
- \phpbb\language\language $language,
- $phpbb_root_path)
- {
- $this->db = $container->get('dbal.conn');
- $this->filesystem = $filesystem;
- $this->install_config = $install_config;
- $this->iohandler = $iohandler;
- $this->language = $language;
- $this->password_manager = $container->get('passwords.manager');
- $this->phpbb_root_path = $phpbb_root_path;
-
- // Table names
- $this->config_table = $container->get_parameter('tables.config');
- $this->forums_table = $container->get_parameter('tables.forums');
- $this->topics_table = $container->get_parameter('tables.topics');
- $this->user_table = $container->get_parameter('tables.users');
- $this->moderator_cache_table = $container->get_parameter('tables.moderator_cache');
- $this->posts_table = $container->get_parameter('tables.posts');
-
- parent::__construct(true);
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- $this->db->sql_return_on_error(true);
-
- $server_name = $this->install_config->get('server_name');
- $cookie_domain = $this->install_config->get('cookie_domain');
- $current_time = time();
- $user_ip = phpbb_ip_normalise($this->iohandler->get_server_variable('REMOTE_ADDR'));
- $user_ip = ($user_ip === false) ? '' : $user_ip;
- $referer = $this->iohandler->get_server_variable('REFERER');
-
- // Set default config and post data, this applies to all DB's
- $sql_ary = array(
- 'INSERT INTO ' . $this->config_table . " (config_name, config_value)
- VALUES ('board_startdate', '$current_time')",
-
- 'INSERT INTO ' . $this->config_table . " (config_name, config_value)
- VALUES ('default_lang', '" . $this->db->sql_escape($this->install_config->get('default_lang')) . "')",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('img_imagick')) . "'
- WHERE config_name = 'img_imagick'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('server_name')) . "'
- WHERE config_name = 'server_name'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('server_port')) . "'
- WHERE config_name = 'server_port'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('board_email')) . "'
- WHERE config_name = 'board_email'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('board_email')) . "'
- WHERE config_name = 'board_contact'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($cookie_domain) . "'
- WHERE config_name = 'cookie_domain'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->language->lang('default_dateformat')) . "'
- WHERE config_name = 'default_dateformat'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('email_enable')) . "'
- WHERE config_name = 'email_enable'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('smtp_delivery')) . "'
- WHERE config_name = 'smtp_delivery'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('smtp_host')) . "'
- WHERE config_name = 'smtp_host'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('smtp_auth')) . "'
- WHERE config_name = 'smtp_auth_method'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('smtp_user')) . "'
- WHERE config_name = 'smtp_username'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('smtp_pass')) . "'
- WHERE config_name = 'smtp_password'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('cookie_secure')) . "'
- WHERE config_name = 'cookie_secure'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('force_server_vars')) . "'
- WHERE config_name = 'force_server_vars'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('script_path')) . "'
- WHERE config_name = 'script_path'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('server_protocol')) . "'
- WHERE config_name = 'server_protocol'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('admin_name')) . "'
- WHERE config_name = 'newest_username'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . md5(mt_rand()) . "'
- WHERE config_name = 'avatar_salt'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . md5(mt_rand()) . "'
- WHERE config_name = 'plupload_salt'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('board_name')) . "'
- WHERE config_name = 'sitename'",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->install_config->get('board_description')) . "'
- WHERE config_name = 'site_desc'",
-
- 'UPDATE ' . $this->user_table . "
- SET username = '" . $this->db->sql_escape($this->install_config->get('admin_name')) . "',
- user_password='" . $this->password_manager->hash($this->install_config->get('admin_passwd')) . "',
- user_ip = '" . $this->db->sql_escape($user_ip) . "',
- user_lang = '" . $this->db->sql_escape($this->install_config->get('language')) . "',
- user_email='" . $this->db->sql_escape($this->install_config->get('board_email')) . "',
- user_dateformat='" . $this->db->sql_escape($this->language->lang('default_dateformat')) . "',
- user_email_hash = " . $this->db->sql_escape(phpbb_email_hash($this->install_config->get('board_email'))) . ",
- username_clean = '" . $this->db->sql_escape(utf8_clean_string($this->install_config->get('admin_name'))) . "'
- WHERE username = 'Admin'",
-
- 'UPDATE ' . $this->moderator_cache_table . "
- SET username = '" . $this->db->sql_escape($this->install_config->get('admin_name')) . "'
- WHERE username = 'Admin'",
-
- 'UPDATE ' . $this->forums_table . "
- SET forum_last_poster_name = '" . $this->db->sql_escape($this->install_config->get('admin_name')) . "'
- WHERE forum_last_poster_name = 'Admin'",
-
- 'UPDATE ' . $this->topics_table . "
- SET topic_first_poster_name = '" . $this->db->sql_escape($this->install_config->get('admin_name')) . "',
- topic_last_poster_name = '" . $this->db->sql_escape($this->install_config->get('admin_name')) . "'
- WHERE topic_first_poster_name = 'Admin'
- OR topic_last_poster_name = 'Admin'",
-
- 'UPDATE ' . $this->user_table . "
- SET user_regdate = $current_time",
-
- 'UPDATE ' . $this->posts_table . "
- SET post_time = $current_time, poster_ip = '" . $this->db->sql_escape($user_ip) . "'",
-
- 'UPDATE ' . $this->topics_table . "
- SET topic_time = $current_time, topic_last_post_time = $current_time",
-
- 'UPDATE ' . $this->forums_table . "
- SET forum_last_post_time = $current_time",
-
- 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($this->db->sql_server_info(true)) . "'
- WHERE config_name = 'dbms_version'",
- );
-
- if (@extension_loaded('gd'))
- {
- $sql_ary[] = 'UPDATE ' . $this->config_table . "
- SET config_value = 'core.captcha.plugins.gd'
- WHERE config_name = 'captcha_plugin'";
-
- $sql_ary[] = 'UPDATE ' . $this->config_table . "
- SET config_value = '1'
- WHERE config_name = 'captcha_gd'";
- }
-
- $ref = substr($referer, strpos($referer, '://') + 3);
- if (!(stripos($ref, $server_name) === 0))
- {
- $sql_ary[] = 'UPDATE ' . $this->config_table . "
- SET config_value = '0'
- WHERE config_name = 'referer_validation'";
- }
-
- // We set a (semi-)unique cookie name to bypass login issues related to the cookie name.
- $cookie_name = 'phpbb3_';
- $rand_str = md5(mt_rand());
- $rand_str = str_replace('0', 'z', base_convert($rand_str, 16, 35));
- $rand_str = substr($rand_str, 0, 5);
- $cookie_name .= strtolower($rand_str);
-
- $sql_ary[] = 'UPDATE ' . $this->config_table . "
- SET config_value = '" . $this->db->sql_escape($cookie_name) . "'
- WHERE config_name = 'cookie_name'";
-
- // Disable avatars if upload directory is not writable
- if (!$this->filesystem->is_writable($this->phpbb_root_path . 'images/avatars/upload/'))
- {
- $sql_ary[] = 'UPDATE ' . $this->config_table . "
- SET config_value = '0'
- WHERE config_name = 'allow_avatar'";
-
- $sql_ary[] = 'UPDATE ' . $this->config_table . "
- SET config_value = '0'
- WHERE config_name = 'allow_avatar_upload'";
- }
-
- foreach ($sql_ary as $sql)
- {
- if (!$this->db->sql_query($sql))
- {
- $error = $this->db->sql_error($this->db->get_sql_error_sql());
- $this->iohandler->add_error_message('INST_ERR_DB', $error['message']);
- }
- }
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 1;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return 'TASK_ADD_CONFIG_SETTINGS';
- }
-}
diff --git a/phpBB/install/module/install_database/task/add_default_data.php b/phpBB/install/module/install_database/task/add_default_data.php
deleted file mode 100644
index 5dbfbb4478..0000000000
--- a/phpBB/install/module/install_database/task/add_default_data.php
+++ /dev/null
@@ -1,161 +0,0 @@
-<?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\module\install_database\task;
-
-/**
- * Create database schema
- */
-class add_default_data extends \phpbb\install\task_base
-{
- /**
- * @var \phpbb\db\driver\driver_interface
- */
- protected $db;
-
- /**
- * @var \phpbb\install\helper\database
- */
- protected $database_helper;
-
- /**
- * @var \phpbb\install\helper\config
- */
- protected $config;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $iohandler;
-
- /**
- * @var \phpbb\language\language
- */
- protected $language;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\database $db_helper Installer's database helper
- * @param \phpbb\install\helper\config $config Installer config
- * @param \phpbb\install\helper\iohandler\iohandler_interface $iohandler Installer's input-output handler
- * @param \phpbb\install\helper\container_factory $container Installer's DI container
- * @param \phpbb\language\language $language Language service
- */
- public function __construct(\phpbb\install\helper\database $db_helper,
- \phpbb\install\helper\config $config,
- \phpbb\install\helper\iohandler\iohandler_interface $iohandler,
- \phpbb\install\helper\container_factory $container,
- \phpbb\language\language $language)
- {
- $dbms = $db_helper->get_available_dbms($config->get('dbms'));
- $dbms = $dbms[$config->get('dbms')]['DRIVER'];
-
- $this->db = $container->get('dbal.conn'); //new $dbms();
- $this->database_helper = $db_helper;
- $this->config = $config;
- $this->iohandler = $iohandler;
- $this->language = $language;
-
- parent::__construct(true);
-
- // Connect to DB
- //$this->db->sql_connect($config->get('dbhost'), $config->get('dbuser'), $config->get('dbpasswd'), $config->get('dbname'), $config->get('dbport'), false, false);
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- $this->db->sql_return_on_error(true);
-
- $table_prefix = $this->config->get('table_prefix');
- $dbms = $this->config->get('dbms');
- $dbms_info = $this->database_helper->get_available_dbms($dbms);
-
- // Get schema data from file
- $sql_query = @file_get_contents('schemas/schema_data.sql');
-
- // Clean up SQL
- $sql_query = $this->replace_dbms_specific_sql($sql_query);
- $sql_query = preg_replace('# phpbb_([^\s]*) #i', ' ' . $table_prefix . '\1 ', $sql_query);
- $sql_query = preg_replace_callback('#\{L_([A-Z0-9\-_]*)\}#s', array($this, 'lang_replace_callback'), $sql_query);
- $sql_query = $this->database_helper->remove_comments($sql_query);
- $sql_query = $this->database_helper->split_sql_file($sql_query, $dbms_info[$dbms]['DELIM']);
-
- foreach ($sql_query as $sql)
- {
- if (!$this->db->sql_query($sql))
- {
- $error = $this->db->sql_error($this->db->get_sql_error_sql());
- $this->iohandler->add_error_message('INST_ERR_DB', $error['message']);
- }
- }
- }
-
- /**
- * Process DB specific SQL
- *
- * @return string
- */
- protected function replace_dbms_specific_sql($query)
- {
- if ($this->db instanceof \phpbb\db\driver\mssql_base || $this->db instanceof \phpbb\db\driver\mssql)
- {
- $query = preg_replace('#\# MSSQL IDENTITY (phpbb_[a-z_]+) (ON|OFF) \##s', 'SET IDENTITY_INSERT \1 \2;', $query);
- }
- else if ($this->db instanceof \phpbb\db\driver\postgres)
- {
- $query = preg_replace('#\# POSTGRES (BEGIN|COMMIT) \##s', '\1; ', $query);
- }
- else if ($this->db instanceof \phpbb\db\driver\mysql_base)
- {
- $query = str_replace('\\', '\\\\', $query);
- }
-
- return $query;
- }
-
- /**
- * Callback function for language replacing
- *
- * @param array $matches
- * @return string
- */
- public function lang_replace_callback($matches)
- {
- if (!empty($matches[1]))
- {
- return $this->db->sql_escape($this->language->lang($matches[1]));
- }
-
- return '';
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 1;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return 'TASK_ADD_DEFAULT_DATA';
- }
-}
diff --git a/phpBB/install/module/install_database/task/create_schema.php b/phpBB/install/module/install_database/task/create_schema.php
deleted file mode 100644
index 7cc521eee8..0000000000
--- a/phpBB/install/module/install_database/task/create_schema.php
+++ /dev/null
@@ -1,214 +0,0 @@
-<?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\module\install_database\task;
-
-/**
- * Create database schema
- */
-class create_schema extends \phpbb\install\task_base
-{
- /**
- * @var \phpbb\install\helper\config
- */
- protected $config;
-
- /**
- * @var \phpbb\db\driver\driver_interface
- */
- protected $db;
-
- /**
- * @var \phpbb\db\tools\tools_interface
- */
- protected $db_tools;
-
- /**
- * @var \phpbb\install\helper\database
- */
- protected $database_helper;
-
- /**
- * @var \phpbb\filesystem\filesystem_interface
- */
- protected $filesystem;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $iohandler;
-
- /**
- * @var string
- */
- protected $phpbb_root_path;
-
- /**
- * @var string
- */
- protected $php_ext;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\config $config Installer's config provider
- * @param \phpbb\install\helper\database $db_helper Installer's database helper
- * @param \phpbb\filesystem\filesystem_interface $filesystem Filesystem service
- * @param \phpbb\install\helper\iohandler\iohandler_interface $iohandler Installer's input-output handler
- * @param string $phpbb_root_path Path phpBB's root
- * @param string $php_ext Extension of PHP files
- */
- public function __construct(\phpbb\install\helper\config $config,
- \phpbb\install\helper\database $db_helper,
- \phpbb\filesystem\filesystem_interface $filesystem,
- \phpbb\install\helper\iohandler\iohandler_interface $iohandler,
- $phpbb_root_path,
- $php_ext)
- {
- $dbms = $db_helper->get_available_dbms($config->get('dbms'));
- $dbms = $dbms[$config->get('dbms')]['DRIVER'];
- $factory = new \phpbb\db\tools\factory();
-
- $this->db = new $dbms();
- $this->config = $config;
- $this->db_tools = $factory->get($this->db);
- $this->database_helper = $db_helper;
- $this->filesystem = $filesystem;
- $this->iohandler = $iohandler;
- $this->phpbb_root_path = $phpbb_root_path;
- $this->php_ext = $php_ext;
-
- parent::__construct(true);
-
- // Connect to DB
- $this->db->sql_connect($config->get('dbhost'), $config->get('dbuser'), $config->get('dbpasswd'), $config->get('dbname'), $config->get('dbport'), false, false);
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- $this->db->sql_return_on_error(true);
-
- $dbms = $this->config->get('dbms');
- $dbms_info = $this->database_helper->get_available_dbms($dbms);
- $schema_name = $dbms_info[$dbms]['SCHEMA'];
- $delimiter = $dbms_info[$dbms]['DELIM'];
- $table_prefix = $this->config->get('table_prefix');
-
- if ($dbms === 'mysql')
- {
- if (version_compare($this->db->sql_server_info(true), '4.1.3', '>='))
- {
- $schema_name .= '_41';
- }
- else
- {
- $schema_name .= '_40';
- }
- }
-
- $db_schema_path = $this->phpbb_root_path . 'install/schemas/' . $schema_name . '_schema.sql';
-
- // Load database vendor specific code if there is any
- if ($this->filesystem->exists($db_schema_path))
- {
- $sql_query = @file_get_contents($db_schema_path);
- $sql_query = preg_replace('#phpbb_#i', $table_prefix, $sql_query);
- $sql_query = $this->database_helper->remove_comments($sql_query);
- $sql_query = $this->database_helper->split_sql_file($sql_query, $delimiter);
-
- foreach ($sql_query as $sql)
- {
- if (!$this->db->sql_query($sql))
- {
- $error = $this->db->sql_error($this->db->get_sql_error_sql());
- $this->iohandler->add_error_message('INST_ERR_DB', $error['message']);
- }
- }
-
- unset($sql_query);
- }
-
- $change_prefix = false;
-
- // Generate database schema
- if ($this->filesystem->exists($this->phpbb_root_path . 'install/schemas/schema.json'))
- {
- $db_table_schema = @file_get_contents($this->phpbb_root_path . 'install/schemas/schema.json');
- $db_table_schema = json_decode($db_table_schema, true);
- $change_prefix = true;
- }
- else
- {
- global $table_prefix;
-
- $table_prefix = $this->config->get('table_prefix');
-
- if (!defined('CONFIG_TABLE'))
- {
- // We need to include the constants file for the table constants
- // when we generate the schema from the migration files.
- include ($this->phpbb_root_path . 'includes/constants.' . $this->php_ext);
- }
-
- $finder = new \phpbb\finder($this->filesystem, $this->phpbb_root_path, null, $this->php_ext);
- $migrator_classes = $finder->core_path('phpbb/db/migration/data/')->get_classes();
- $factory = new \phpbb\db\tools\factory();
- $db_tools = $factory->get($this->db, true);
- $schema_generator = new \phpbb\db\migration\schema_generator(
- $migrator_classes,
- new \phpbb\config\config(array()),
- $this->db,
- $db_tools,
- $this->phpbb_root_path,
- $this->php_ext,
- $table_prefix
- );
- $db_table_schema = $schema_generator->get_schema();
- }
-
- if (!defined('CONFIG_TABLE'))
- {
- // CONFIG_TABLE is required by sql_create_index() to check the
- // length of index names. However table_prefix is not defined
- // here yet, so we need to create the constant ourselves.
- define('CONFIG_TABLE', $table_prefix . 'config');
- }
-
- foreach ($db_table_schema as $table_name => $table_data)
- {
- $this->db_tools->sql_create_table(
- ( ($change_prefix) ? ($table_prefix . substr($table_name, 6)) : $table_name ),
- $table_data
- );
- }
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 1;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return 'TASK_CREATE_DATABASE_SCHEMA';
- }
-}
diff --git a/phpBB/install/module/install_filesystem/module.php b/phpBB/install/module/install_filesystem/module.php
deleted file mode 100644
index 7215449664..0000000000
--- a/phpBB/install/module/install_filesystem/module.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?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\module\install_filesystem;
-
-/**
- * Installer module for filesystem installation
- */
-class module extends \phpbb\install\module_base
-{
- /**
- * {@inheritdoc}
- */
- public function get_navigation_stage_path()
- {
- return array('install', 0, 'install');
- }
-}
diff --git a/phpBB/install/module/install_filesystem/task/create_config_file.php b/phpBB/install/module/install_filesystem/task/create_config_file.php
deleted file mode 100644
index 337d401216..0000000000
--- a/phpBB/install/module/install_filesystem/task/create_config_file.php
+++ /dev/null
@@ -1,235 +0,0 @@
-<?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\module\install_filesystem\task;
-
-use phpbb\install\exception\user_interaction_required_exception;
-
-/**
- * Dumps config file
- */
-class create_config_file extends \phpbb\install\task_base
-{
- /**
- * @var \phpbb\filesystem\filesystem_interface
- */
- protected $filesystem;
-
- /**
- * @var \phpbb\install\helper\database
- */
- protected $db_helper;
-
- /**
- * @var \phpbb\install\helper\config
- */
- protected $install_config;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $iohandler;
-
- /**
- * @var string
- */
- protected $phpbb_root_path;
-
- /**
- * @var string
- */
- protected $php_ext;
-
- /**
- * Constructor
- *
- * @param \phpbb\filesystem\filesystem_interface $filesystem
- * @param \phpbb\install\helper\config $install_config
- * @param \phpbb\install\helper\database $db_helper
- * @param \phpbb\install\helper\iohandler\iohandler_interface $iohandler
- * @param string $phpbb_root_path
- * @param string $php_ext
- */
- public function __construct(\phpbb\filesystem\filesystem_interface $filesystem,
- \phpbb\install\helper\config $install_config,
- \phpbb\install\helper\database $db_helper,
- \phpbb\install\helper\iohandler\iohandler_interface $iohandler,
- $phpbb_root_path,
- $php_ext)
- {
- $this->install_config = $install_config;
- $this->db_helper = $db_helper;
- $this->filesystem = $filesystem;
- $this->iohandler = $iohandler;
- $this->phpbb_root_path = $phpbb_root_path;
- $this->php_ext = $php_ext;
-
- parent::__construct(true);
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- $config_written = true;
-
- // Create config.php
- $path_to_config = $this->phpbb_root_path . 'config.' . $this->php_ext;
-
- $fp = @fopen($path_to_config, 'w');
- if (!$fp)
- {
- $config_written = false;
- }
-
- $config_content = $this->get_config_data();
-
- if (!@fwrite($fp, $config_content))
- {
- $config_written = false;
- }
-
- @fclose($fp);
-
- // chmod config.php to be only readable
- if ($config_written)
- {
- try
- {
- $this->filesystem->phpbb_chmod($path_to_config, \phpbb\filesystem\filesystem_interface::CHMOD_READ);
- }
- catch (\phpbb\filesystem\exception\filesystem_exception $e)
- {
- // Do nothing, the user will get a notice later
- }
- }
- else
- {
- $this->iohandler->add_error_message('UNABLE_TO_WRITE_CONFIG_FILE');
- $this->iohandler->send_response();
- throw new user_interaction_required_exception();
- }
-
- // Create a lock file to indicate that there is an install in progress
- $fp = @fopen($this->phpbb_root_path . 'cache/install_lock', 'wb');
- if ($fp === false)
- {
- // We were unable to create the lock file - abort
- $this->iohandler->add_error_message('UNABLE_TO_WRITE_LOCK');
- $this->iohandler->send_response();
- throw new user_interaction_required_exception();
- }
- @fclose($fp);
-
- try
- {
- $this->filesystem->phpbb_chmod($this->phpbb_root_path . 'cache/install_lock', 0777);
- }
- catch (\phpbb\filesystem\exception\filesystem_exception $e)
- {
- // Do nothing, the user will get a notice later
- }
- }
-
- /**
- * Returns the content which should be dumped to config.php
- *
- * @param bool $debug If the debug constants should be enabled by default or not
- * @param bool $debug_container If the container should be compiled on
- * every page load or not
- * @param bool $debug_test If the DEBUG_TEST constant should be added
- * NOTE: Only for use within the testing framework
- *
- * @return string content to be written to the config file
- */
- protected function get_config_data($debug = false, $debug_container = false, $debug_test = false)
- {
- $config_content = "<?php\n";
- $config_content .= "// phpBB 3.2.x auto-generated configuration file\n// Do not change anything in this file!\n";
-
- $dbms = $this->install_config->get('dbms');
- $db_driver = $this->db_helper->get_available_dbms($dbms);
- $db_driver = $db_driver[$dbms]['DRIVER'];
-
- $config_data_array = array(
- 'dbms' => $db_driver,
- 'dbhost' => $this->install_config->get('dbhost'),
- 'dbport' => $this->install_config->get('dbport'),
- 'dbname' => $this->install_config->get('dbname'),
- 'dbuser' => $this->install_config->get('dbuser'),
- 'dbpasswd' => $this->install_config->get('dbpasswd'),
- 'table_prefix' => $this->install_config->get('table_prefix'),
-
- 'phpbb_adm_relative_path' => 'adm/',
-
- 'acm_type' => 'phpbb\cache\driver\file',
- );
-
- foreach ($config_data_array as $key => $value)
- {
- $config_content .= "\${$key} = '" . str_replace("'", "\\'", str_replace('\\', '\\\\', $value)) . "';\n";
- }
-
- $config_content .= "\n@define('PHPBB_INSTALLED', true);\n";
- $config_content .= "// @define('PHPBB_DISPLAY_LOAD_TIME', true);\n";
-
- if ($debug_test)
- {
- $config_content .= "@define('PHPBB_ENVIRONMENT', 'test');\n";
- }
- else if ($debug)
- {
- $config_content .= "@define('PHPBB_ENVIRONMENT', 'development');\n";
- }
- else
- {
- $config_content .= "@define('PHPBB_ENVIRONMENT', 'production');\n";
- }
-
- if ($debug_container)
- {
- $config_content .= "@define('DEBUG_CONTAINER', true);\n";
- }
- else
- {
- $config_content .= "// @define('DEBUG_CONTAINER', true);\n";
- }
-
- if ($debug_test)
- {
- $config_content .= "@define('DEBUG_TEST', true);\n";
-
- // Mandatory for the functional tests, will be removed by PHPBB3-12623
- $config_content .= "@define('DEBUG', true);\n";
- }
-
- return $config_content;
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 1;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return 'TASK_CREATE_CONFIG_FILE';
- }
-}
diff --git a/phpBB/install/module/install_finish/module.php b/phpBB/install/module/install_finish/module.php
deleted file mode 100644
index 3a7544b84f..0000000000
--- a/phpBB/install/module/install_finish/module.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?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\module\install_finish;
-
-/**
- * Installer module for filesystem installation
- */
-class module extends \phpbb\install\module_base
-{
- /**
- * {@inheritdoc}
- */
- public function get_navigation_stage_path()
- {
- return array('install', 0, 'install');
- }
-}
diff --git a/phpBB/install/module/install_finish/task/notify_user.php b/phpBB/install/module/install_finish/task/notify_user.php
deleted file mode 100644
index 4ab6ec56c6..0000000000
--- a/phpBB/install/module/install_finish/task/notify_user.php
+++ /dev/null
@@ -1,129 +0,0 @@
-<?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\module\install_finish\task;
-
-/**
- * Logs installation and sends an email to the admin
- */
-class notify_user extends \phpbb\install\task_base
-{
- /**
- * @var \phpbb\install\helper\config
- */
- protected $install_config;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $iohandler;
-
- /**
- * @var \phpbb\auth\auth
- */
- protected $auth;
-
- /**
- * @var \phpbb\config\db
- */
- protected $config;
-
- /**
- * @var \phpbb\log\log_interface
- */
- protected $log;
-
- /**
- * @var \phpbb\user
- */
- protected $user;
-
- /**
- * @var string
- */
- protected $phpbb_root_path;
-
- /**
- * @var string
- */
- protected $php_ext;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\container_factory $container
- * @param \phpbb\install\helper\config $install_config
- * @param \phpbb\install\helper\iohandler\iohandler_interface $iohandler
- * @param string $phpbb_root_path
- * @param string $php_ext
- */
- public function __construct(\phpbb\install\helper\container_factory $container, \phpbb\install\helper\config $install_config, \phpbb\install\helper\iohandler\iohandler_interface $iohandler, $phpbb_root_path, $php_ext)
- {
- $this->install_config = $install_config;
- $this->iohandler = $iohandler;
-
- $this->auth = $container->get('auth');
- $this->config = $container->get('config');
- $this->log = $container->get('log');
- $this->user = $container->get('user');
- $this->phpbb_root_path = $phpbb_root_path;
- $this->php_ext = $php_ext;
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- // @todo
- //$this->user->setup('common');
-
- //$this->user->session_begin();
- //$this->auth->login($this->install_config->get('admin_name'), $this->install_config->get('admin_pass1'), false, true, true);
-
- if ($this->config['email_enable'])
- {
- include ($this->phpbb_root_path . 'includes/functions_messenger.' . $this->php_ext);
-
- $messenger = new \messenger(false);
- $messenger->template('installed', $this->install_config->get('language'));
- $messenger->to($this->config['board_email'], $this->install_config->get('admin_name'));
- $messenger->anti_abuse_headers($this->config, $this->user);
- $messenger->assign_vars(array(
- 'USERNAME' => htmlspecialchars_decode($this->install_config->get('admin_name')),
- 'PASSWORD' => htmlspecialchars_decode($this->install_config->get('admin_passwd')))
- );
- $messenger->send(NOTIFY_EMAIL);
- }
-
- $this->log->add('admin', $this->user->data['user_id'], $this->user->ip, 'LOG_INSTALL_INSTALLED', false, array($this->config['version']));
-
- @unlink($this->phpbb_root_path . 'cache/install_lock');
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 1;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return 'TASK_NOTIFY_USER';
- }
-}
diff --git a/phpBB/install/module/install_finish/task/populate_migrations.php b/phpBB/install/module/install_finish/task/populate_migrations.php
deleted file mode 100644
index b2a4800f86..0000000000
--- a/phpBB/install/module/install_finish/task/populate_migrations.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?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\module\install_finish\task;
-
-/**
- * Populates migrations
- */
-class populate_migrations extends \phpbb\install\task_base
-{
- /**
- * @var \phpbb\extension\manager
- */
- protected $extension_manager;
-
- /**
- * @var \phpbb\db\migrator
- */
- protected $migrator;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\container_factory $container phpBB's DI contianer
- */
- public function __construct(\phpbb\install\helper\container_factory $container)
- {
- $this->extension_manager = $container->get('ext.manager');
- $this->migrator = $container->get('migrator');
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- $finder = $this->extension_manager->get_finder();
-
- $migrations = $finder
- ->core_path('phpbb/db/migration/data/')
- ->get_classes();
- $this->migrator->populate_migrations($migrations);
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 1;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return 'TASK_POPULATE_MIGRATIONS';
- }
-}
diff --git a/phpBB/install/module/obtain_data/module.php b/phpBB/install/module/obtain_data/module.php
deleted file mode 100644
index 0e008796c5..0000000000
--- a/phpBB/install/module/obtain_data/module.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?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\module\obtain_data;
-
-class module extends \phpbb\install\module_base
-{
- /**
- * {@inheritdoc}
- */
- public function get_navigation_stage_path()
- {
- return array('install', 0, 'obtain_data');
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_step_count()
- {
- return 0;
- }
-}
diff --git a/phpBB/install/module/obtain_data/task/obtain_admin_data.php b/phpBB/install/module/obtain_data/task/obtain_admin_data.php
deleted file mode 100644
index b2250e524b..0000000000
--- a/phpBB/install/module/obtain_data/task/obtain_admin_data.php
+++ /dev/null
@@ -1,219 +0,0 @@
-<?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\module\obtain_data\task;
-
-use phpbb\install\exception\user_interaction_required_exception;
-
-/**
- * This class requests and validates admin account data from the user
- */
-class obtain_admin_data extends \phpbb\install\task_base implements \phpbb\install\task_interface
-{
- /**
- * @var \phpbb\install\helper\config
- */
- protected $install_config;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $io_handler;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\config $install_config Installer's config helper
- * @param \phpbb\install\helper\iohandler\iohandler_interface $iohandler Installer's input-output handler
- */
- public function __construct(\phpbb\install\helper\config $install_config,
- \phpbb\install\helper\iohandler\iohandler_interface $iohandler)
- {
- $this->install_config = $install_config;
- $this->io_handler = $iohandler;
-
- parent::__construct(true);
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- // Check if data is sent
- if ($this->io_handler->get_input('submit_admin', false))
- {
- $this->process_form();
- }
- else
- {
- $this->request_form_data();
- }
- }
-
- /**
- * Process form data
- */
- protected function process_form()
- {
- // Admin data
- $admin_name = $this->io_handler->get_input('admin_name', '', true);
- $admin_pass1 = $this->io_handler->get_input('admin_pass1', '', true);
- $admin_pass2 = $this->io_handler->get_input('admin_pass2', '', true);
- $board_email = $this->io_handler->get_input('board_email', '');
-
- $admin_data_valid = $this->check_admin_data($admin_name, $admin_pass1, $admin_pass2, $board_email);
-
- if ($admin_data_valid)
- {
- $this->install_config->set('admin_name', $admin_name);
- $this->install_config->set('admin_passwd', $admin_pass1);
- $this->install_config->set('board_email', $board_email);
- }
- else
- {
- $this->request_form_data(true);
- }
- }
-
- /**
- * Request data from the user
- *
- * @param bool $use_request_data Whether to use submited data
- *
- * @throws \phpbb\install\exception\user_interaction_required_exception When the user is required to provide data
- */
- protected function request_form_data($use_request_data = false)
- {
- if ($use_request_data)
- {
- $admin_username = $this->io_handler->get_input('admin_name', '', true);
- $admin_email = $this->io_handler->get_input('board_email', '', true);
- }
- else
- {
- $admin_username = '';
- $admin_email = '';
- }
-
- $admin_form = array(
- 'admin_name' => array(
- 'label' => 'ADMIN_USERNAME',
- 'description' => 'ADMIN_USERNAME_EXPLAIN',
- 'type' => 'text',
- 'default' => $admin_username,
- ),
- 'board_email' => array(
- 'label' => 'CONTACT_EMAIL',
- 'type' => 'email',
- 'default' => $admin_email,
- ),
- 'admin_pass1' => array(
- 'label' => 'ADMIN_PASSWORD',
- 'description' => 'ADMIN_PASSWORD_EXPLAIN',
- 'type' => 'password',
- ),
- 'admin_pass2' => array(
- 'label' => 'ADMIN_PASSWORD_CONFIRM',
- 'type' => 'password',
- ),
- 'submit_admin' => array(
- 'label' => 'SUBMIT',
- 'type' => 'submit',
- ),
- );
-
- $this->io_handler->add_user_form_group('ADMIN_CONFIG', $admin_form);
-
- // Require user interaction
- $this->io_handler->send_response();
- throw new user_interaction_required_exception();
- }
-
- /**
- * Check admin data
- *
- * @param string $username Admin username
- * @param string $pass1 Admin password
- * @param string $pass2 Admin password confirmation
- * @param string $email Admin e-mail address
- *
- * @return bool True if data is valid, false otherwise
- */
- protected function check_admin_data($username, $pass1, $pass2, $email)
- {
- $data_valid = true;
-
- // Check if none of admin data is empty
- if (in_array('', array($username, $pass1, $pass2, $email)))
- {
- $this->io_handler->add_error_message('INST_ERR_MISSING_DATA');
- $data_valid = false;
- }
-
- if (utf8_strlen($username) < 3)
- {
- $this->io_handler->add_error_message('INST_ERR_USER_TOO_SHORT');
- $data_valid = false;
- }
-
- if (utf8_strlen($username) > 20)
- {
- $this->io_handler->add_error_message('INST_ERR_USER_TOO_LONG');
- $data_valid = false;
- }
-
- if ($pass1 !== $pass2 && $pass1 !== '')
- {
- $this->io_handler->add_error_message('INST_ERR_PASSWORD_MISMATCH');
- $data_valid = false;
- }
-
- // Test against the default password rules
- if (utf8_strlen($pass1) < 6)
- {
- $this->io_handler->add_error_message('INST_ERR_PASSWORD_TOO_SHORT');
- $data_valid = false;
- }
-
- if (utf8_strlen($pass1) > 30)
- {
- $this->io_handler->add_error_message('INST_ERR_PASSWORD_TOO_LONG');
- $data_valid = false;
- }
-
- if (!preg_match('/^' . get_preg_expression('email') . '$/i', $email))
- {
- $this->io_handler->add_error_message('INST_ERR_EMAIL_INVALID');
- $data_valid = false;
- }
-
- return $data_valid;
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 0;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return '';
- }
-}
diff --git a/phpBB/install/module/obtain_data/task/obtain_board_data.php b/phpBB/install/module/obtain_data/task/obtain_board_data.php
deleted file mode 100644
index 821c221123..0000000000
--- a/phpBB/install/module/obtain_data/task/obtain_board_data.php
+++ /dev/null
@@ -1,186 +0,0 @@
-<?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\module\obtain_data\task;
-
-use phpbb\install\exception\user_interaction_required_exception;
-
-/**
- * This class obtains default data from the user related to board (Board name, Board descritpion, etc...)
- */
-class obtain_board_data extends \phpbb\install\task_base implements \phpbb\install\task_interface
-{
- /**
- * @var \phpbb\install\helper\config
- */
- protected $install_config;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $io_handler;
-
- /**
- * @var \phpbb\language\language_file_helper
- */
- protected $language_helper;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\config $config Installer's config
- * @param \phpbb\install\helper\iohandler\iohandler_interface $iohandler Installer's input-output handler
- * @param \phpbb\language\language_file_helper $lang_helper Language file helper
- */
- public function __construct(\phpbb\install\helper\config $config,
- \phpbb\install\helper\iohandler\iohandler_interface $iohandler,
- \phpbb\language\language_file_helper $lang_helper)
- {
- $this->install_config = $config;
- $this->io_handler = $iohandler;
- $this->language_helper = $lang_helper;
-
- parent::__construct(true);
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- // Check if data is sent
- if ($this->io_handler->get_input('submit_board', false))
- {
- $this->process_form();
- }
- else
- {
- $this->request_form_data();
- }
- }
-
- /**
- * Process form data
- */
- protected function process_form()
- {
- // Board data
- $default_lang = $this->io_handler->get_input('default_lang', '');
- $board_name = $this->io_handler->get_input('board_name', '');
- $board_desc = $this->io_handler->get_input('board_description', '');
-
- // Check default lang
- $langs = $this->language_helper->get_available_languages();
- $lang_valid = false;
-
- foreach ($langs as $lang)
- {
- if ($lang['iso'] === $default_lang)
- {
- $lang_valid = true;
- break;
- }
- }
-
- $this->install_config->set('board_name', $board_name);
- $this->install_config->set('board_description', $board_desc);
-
- if ($lang_valid)
- {
- $this->install_config->set('default_lang', $default_lang);
- }
- else
- {
- $this->request_form_data(true);
- }
- }
-
- /**
- * Request data from the user
- *
- * @param bool $use_request_data Whether to use submited data
- *
- * @throws \phpbb\install\exception\user_interaction_required_exception When the user is required to provide data
- */
- protected function request_form_data($use_request_data = false)
- {
- if ($use_request_data)
- {
- $board_name = $this->io_handler->get_input('board_name', '');
- $board_desc = $this->io_handler->get_input('board_description', '');
- }
- else
- {
- $board_name = '{L_CONFIG_SITENAME}';
- $board_desc = '{L_CONFIG_SITE_DESC}';
- }
-
- // Use language because we only check this to be valid
- $default_lang = $this->install_config->get('language', '');
-
- $langs = $this->language_helper->get_available_languages();
- $lang_options = array();
-
- foreach ($langs as $lang)
- {
- $lang_options[] = array(
- 'value' => $lang['iso'],
- 'label' => $lang['local_name'],
- 'selected' => ($default_lang === $lang['iso']),
- );
- }
-
- $board_form = array(
- 'default_lang' => array(
- 'label' => 'DEFAULT_LANGUAGE',
- 'type' => 'select',
- 'options' => $lang_options,
- ),
- 'board_name' => array(
- 'label' => 'BOARD_NAME',
- 'type' => 'text',
- 'default' => $board_name,
- ),
- 'board_description' => array(
- 'label' => 'BOARD_DESCRIPTION',
- 'type' => 'text',
- 'default' => $board_desc,
- ),
- 'submit_board' => array(
- 'label' => 'SUBMIT',
- 'type' => 'submit',
- ),
- );
-
- $this->io_handler->add_user_form_group('BOARD_CONFIG', $board_form);
-
- $this->io_handler->send_response();
- throw new user_interaction_required_exception;
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 0;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return '';
- }
-}
diff --git a/phpBB/install/module/obtain_data/task/obtain_database_data.php b/phpBB/install/module/obtain_data/task/obtain_database_data.php
deleted file mode 100644
index 0c1146d9f5..0000000000
--- a/phpBB/install/module/obtain_data/task/obtain_database_data.php
+++ /dev/null
@@ -1,271 +0,0 @@
-<?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\module\obtain_data\task;
-
-use phpbb\install\exception\user_interaction_required_exception;
-
-/**
- * This class requests and validates database information from the user
- */
-class obtain_database_data extends \phpbb\install\task_base implements \phpbb\install\task_interface
-{
- /**
- * @var \phpbb\install\helper\database
- */
- protected $database_helper;
-
- /**
- * @var \phpbb\install\helper\config
- */
- protected $install_config;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $io_handler;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\database $database_helper Installer's database helper
- * @param \phpbb\install\helper\config $install_config Installer's config helper
- * @param \phpbb\install\helper\iohandler\iohandler_interface $iohandler Installer's input-output handler
- */
- public function __construct(\phpbb\install\helper\database $database_helper,
- \phpbb\install\helper\config $install_config,
- \phpbb\install\helper\iohandler\iohandler_interface $iohandler)
- {
- $this->database_helper = $database_helper;
- $this->install_config = $install_config;
- $this->io_handler = $iohandler;
-
- parent::__construct(true);
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- // Check if data is sent
- if ($this->io_handler->get_input('submit_database', false))
- {
- $this->process_form();
- }
- else
- {
- $this->request_form_data();
- }
- }
-
- /**
- * Process form data
- */
- protected function process_form()
- {
- // Collect database data
- $dbms = $this->io_handler->get_input('dbms', '');
- $dbhost = $this->io_handler->get_input('dbhost', '');
- $dbport = $this->io_handler->get_input('dbport', '');
- $dbuser = $this->io_handler->get_input('dbuser', '');
- $dbpasswd = $this->io_handler->get_input('dbpasswd', '', true);
- $dbname = $this->io_handler->get_input('dbname', '');
- $table_prefix = $this->io_handler->get_input('table_prefix', '');
-
- // Check database data
- $user_data_vaild = $this->check_database_data($dbms, $dbhost, $dbport, $dbuser, $dbpasswd, $dbname, $table_prefix);
-
- // Save database data if it is correct
- if ($user_data_vaild)
- {
- $this->install_config->set('dbms', $dbms);
- $this->install_config->set('dbhost', $dbhost);
- $this->install_config->set('dbport', $dbport);
- $this->install_config->set('dbuser', $dbuser);
- $this->install_config->set('dbpasswd', $dbpasswd);
- $this->install_config->set('dbname', $dbname);
- $this->install_config->set('table_prefix', $table_prefix);
- }
- else
- {
- $this->request_form_data(true);
- }
- }
-
- /**
- * Request data from the user
- *
- * @param bool $use_request_data Whether to use submited data
- *
- * @throws \phpbb\install\exception\user_interaction_required_exception When the user is required to provide data
- */
- protected function request_form_data($use_request_data = false)
- {
- if ($use_request_data)
- {
- $dbms = $this->io_handler->get_input('dbms', '');
- $dbhost = $this->io_handler->get_input('dbhost', '');
- $dbport = $this->io_handler->get_input('dbport', '');
- $dbuser = $this->io_handler->get_input('dbuser', '');
- $dbname = $this->io_handler->get_input('dbname', '');
- $table_prefix = $this->io_handler->get_input('table_prefix', 'phpbb_');
- }
- else
- {
- $dbms = '';
- $dbhost = '';
- $dbport = '';
- $dbuser = '';
- $dbname = '';
- $table_prefix = 'phpbb_';
- }
-
- $dbms_select = array();
- foreach ($this->database_helper->get_available_dbms() as $dbms_key => $dbms_array)
- {
- $dbms_select[] = array(
- 'value' => $dbms_key,
- 'label' => 'DB_OPTION_' . strtoupper($dbms_key),
- 'selected' => ($dbms_key === $dbms),
- );
- }
-
- $database_form = array(
- 'dbms' => array(
- 'label' => 'DBMS',
- 'type' => 'select',
- 'options' => $dbms_select,
- ),
- 'dbhost' => array(
- 'label' => 'DB_HOST',
- 'description' => 'DB_HOST_EXPLAIN',
- 'type' => 'text',
- 'default' => $dbhost,
- ),
- 'dbport' => array(
- 'label' => 'DB_PORT',
- 'description' => 'DB_PORT_EXPLAIN',
- 'type' => 'text',
- 'default' => $dbport,
- ),
- 'dbuser' => array(
- 'label' => 'DB_USERNAME',
- 'type' => 'text',
- 'default' => $dbuser,
- ),
- 'dbpasswd' => array(
- 'label' => 'DB_PASSWORD',
- 'type' => 'password',
- ),
- 'dbname' => array(
- 'label' => 'DB_NAME',
- 'type' => 'text',
- 'default' => $dbname,
- ),
- 'table_prefix' => array(
- 'label' => 'TABLE_PREFIX',
- 'description' => 'TABLE_PREFIX_EXPLAIN',
- 'type' => 'text',
- 'default' => $table_prefix,
- ),
- 'submit_database' => array(
- 'label' => 'SUBMIT',
- 'type' => 'submit',
- ),
- );
-
- $this->io_handler->add_user_form_group('DB_CONFIG', $database_form);
-
- // Require user interaction
- $this->io_handler->send_response();
- throw new user_interaction_required_exception();
- }
-
- /**
- * Check database data
- *
- * @param string $dbms Selected database type
- * @param string $dbhost Database host address
- * @param int $dbport Database port number
- * @param string $dbuser Database username
- * @param string $dbpass Database password
- * @param string $dbname Database name
- * @param string $table_prefix Database table prefix
- *
- * @return bool True if database data is correct, false otherwise
- */
- protected function check_database_data($dbms, $dbhost, $dbport, $dbuser, $dbpass, $dbname, $table_prefix)
- {
- $available_dbms = $this->database_helper->get_available_dbms();
- $data_valid = true;
-
- // Check if PHP has the database extensions for the specified DBMS
- if (!isset($available_dbms[$dbms]))
- {
- $this->io_handler->add_error_message('INST_ERR_NO_DB');
- $data_valid = false;
- }
-
- // Validate table prefix
- $prefix_valid = $this->database_helper->validate_table_prefix($dbms, $table_prefix);
- if (is_array($prefix_valid))
- {
- foreach ($prefix_valid as $error)
- {
- $this->io_handler->add_error_message(
- $error['title'],
- (isset($error['description'])) ? $error['description'] : false
- );
- }
-
- $data_valid = false;
- }
-
- // Try to connect to database if all provided data is valid
- if ($data_valid)
- {
- $connect_test = $this->database_helper->check_database_connection($dbms, $dbhost, $dbport, $dbuser, $dbpass, $dbname, $table_prefix);
- if (is_array($connect_test))
- {
- foreach ($prefix_valid as $error)
- {
- $this->io_handler->add_error_message(
- $error['title'],
- (isset($error['description'])) ? $error['description'] : false
- );
- }
-
- $data_valid = false;
- }
- }
-
- return $data_valid;
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 0;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return '';
- }
-}
diff --git a/phpBB/install/module/obtain_data/task/obtain_email_data.php b/phpBB/install/module/obtain_data/task/obtain_email_data.php
deleted file mode 100644
index ae7526a9e3..0000000000
--- a/phpBB/install/module/obtain_data/task/obtain_email_data.php
+++ /dev/null
@@ -1,167 +0,0 @@
-<?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\module\obtain_data\task;
-
-use phpbb\install\exception\user_interaction_required_exception;
-
-class obtain_email_data extends \phpbb\install\task_base implements \phpbb\install\task_interface
-{
- /**
- * @var \phpbb\install\helper\config
- */
- protected $install_config;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $io_handler;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\config $config Installer's config
- * @param \phpbb\install\helper\iohandler\iohandler_interface $iohandler Installer's input-output handler
- */
- public function __construct(\phpbb\install\helper\config $config,
- \phpbb\install\helper\iohandler\iohandler_interface $iohandler)
- {
- $this->install_config = $config;
- $this->io_handler = $iohandler;
-
- parent::__construct(true);
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- // E-mail data
- $email_enable = $this->io_handler->get_input('email_enable', true);
- $smtp_delivery = $this->io_handler->get_input('smtp_delivery', '');
- $smtp_host = $this->io_handler->get_input('smtp_host', '');
- $smtp_auth = $this->io_handler->get_input('smtp_auth', '');
- $smtp_user = $this->io_handler->get_input('smtp_user', '');
- $smtp_passwd = $this->io_handler->get_input('smtp_pass', '');
-
- $auth_methods = array('PLAIN', 'LOGIN', 'CRAM-MD5', 'DIGEST-MD5', 'POP-BEFORE-SMTP');
-
- // Check if data is sent
- if ($this->io_handler->get_input('submit_email', false))
- {
- $this->install_config->set('email_enable', $email_enable);
- $this->install_config->set('smtp_delivery', $smtp_delivery);
- $this->install_config->set('smtp_host', $smtp_host);
- $this->install_config->set('smtp_auth', $smtp_auth);
- $this->install_config->set('smtp_user', $smtp_user);
- $this->install_config->set('smtp_pass', $smtp_passwd);
- }
- else
- {
- $auth_options = array();
- foreach ($auth_methods as $method)
- {
- $auth_options[] = array(
- 'value' => $method,
- 'label' => 'SMTP_' . str_replace('-', '_', $method),
- 'selected' => false,
- );
- }
-
- $email_form = array(
- 'email_enable' => array(
- 'label' => 'ENABLE_EMAIL',
- 'description' => 'COOKIE_SECURE_EXPLAIN',
- 'type' => 'radio',
- 'options' => array(
- array(
- 'value' => 1,
- 'label' => 'ENABLE',
- 'selected' => true,
- ),
- array(
- 'value' => 0,
- 'label' => 'DISABLE',
- 'selected' => false,
- ),
- ),
- ),
- 'smtp_delivery' => array(
- 'label' => 'USE_SMTP',
- 'description' => 'USE_SMTP_EXPLAIN',
- 'type' => 'radio',
- 'options' => array(
- array(
- 'value' => 0,
- 'label' => 'NO',
- 'selected' => true,
- ),
- array(
- 'value' => 1,
- 'label' => 'YES',
- 'selected' => false,
- ),
- ),
- ),
- 'smtp_host' => array(
- 'label' => 'SMTP_SERVER',
- 'description' => 'SMTP_SERVER_EXPLAIN',
- 'type' => 'text',
- 'default' => $smtp_host,
- ),
- 'smtp_auth' => array(
- 'label' => 'SMTP_AUTH_METHOD',
- 'type' => 'select',
- 'options' => $auth_options,
- ),
- 'smtp_user' => array(
- 'label' => 'SMTP_USERNAME',
- 'description' => 'SMTP_USERNAME_EXPLAIN',
- 'type' => 'text',
- 'default' => $smtp_user,
- ),
- 'smtp_pass' => array(
- 'label' => 'SMTP_PASSWORD',
- 'description' => 'SMTP_PASSWORD_EXPLAIN',
- 'type' => 'password',
- ),
- 'submit_email' => array(
- 'label' => 'SUBMIT',
- 'type' => 'submit',
- ),
- );
-
- $this->io_handler->add_user_form_group('EMAIL_CONFIG', $email_form);
-
- $this->io_handler->send_response();
- throw new user_interaction_required_exception();
- }
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 0;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return '';
- }
-}
diff --git a/phpBB/install/module/obtain_data/task/obtain_imagick_path.php b/phpBB/install/module/obtain_data/task/obtain_imagick_path.php
deleted file mode 100644
index 9f74b61770..0000000000
--- a/phpBB/install/module/obtain_data/task/obtain_imagick_path.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?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\module\obtain_data\task;
-
-class obtain_imagick_path extends \phpbb\install\task_base implements \phpbb\install\task_interface
-{
- /**
- * @var \phpbb\install\helper\config
- */
- protected $config;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\config $config Installer's config
- */
- public function __construct(\phpbb\install\helper\config $config)
- {
- $this->config = $config;
-
- parent::__construct(true);
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- // Can we find Imagemagick anywhere on the system?
- $exe = (DIRECTORY_SEPARATOR == '\\') ? '.exe' : '';
-
- $magic_home = getenv('MAGICK_HOME');
- $img_imagick = '';
- if (empty($magic_home))
- {
- $locations = array('C:/WINDOWS/', 'C:/WINNT/', 'C:/WINDOWS/SYSTEM/', 'C:/WINNT/SYSTEM/', 'C:/WINDOWS/SYSTEM32/', 'C:/WINNT/SYSTEM32/', '/usr/bin/', '/usr/sbin/', '/usr/local/bin/', '/usr/local/sbin/', '/opt/', '/usr/imagemagick/', '/usr/bin/imagemagick/');
- $path_locations = str_replace('\\', '/', (explode(($exe) ? ';' : ':', getenv('PATH'))));
-
- $locations = array_merge($path_locations, $locations);
- foreach ($locations as $location)
- {
- // The path might not end properly, fudge it
- if (substr($location, -1, 1) !== '/')
- {
- $location .= '/';
- }
-
- if (@file_exists($location) && @is_readable($location . 'mogrify' . $exe) && @filesize($location . 'mogrify' . $exe) > 3000)
- {
- $img_imagick = str_replace('\\', '/', $location);
- continue;
- }
- }
- }
- else
- {
- $img_imagick = str_replace('\\', '/', $magic_home);
- }
-
- $this->config->set('img_imagick', $img_imagick);
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 0;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return '';
- }
-}
diff --git a/phpBB/install/module/obtain_data/task/obtain_server_data.php b/phpBB/install/module/obtain_data/task/obtain_server_data.php
deleted file mode 100644
index 2d1e37b10e..0000000000
--- a/phpBB/install/module/obtain_data/task/obtain_server_data.php
+++ /dev/null
@@ -1,203 +0,0 @@
-<?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\module\obtain_data\task;
-
-use phpbb\install\exception\user_interaction_required_exception;
-
-/**
- * This class requests and saves some information about the server
- */
-class obtain_server_data extends \phpbb\install\task_base implements \phpbb\install\task_interface
-{
- /**
- * @var \phpbb\install\helper\config
- */
- protected $install_config;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $io_handler;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\config $config Installer's config
- * @param \phpbb\install\helper\iohandler\iohandler_interface $iohandler Installer's input-output handler
- */
- public function __construct(\phpbb\install\helper\config $config,
- \phpbb\install\helper\iohandler\iohandler_interface $iohandler)
- {
- $this->install_config = $config;
- $this->io_handler = $iohandler;
-
- parent::__construct(true);
- }
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- $cookie_secure = $this->io_handler->is_secure();
- $server_protocol = ($this->io_handler->is_secure()) ? 'https://' : 'http://';
- $server_port = $this->io_handler->get_server_variable('SERVER_PORT', 0);
-
- // HTTP_HOST is having the correct browser url in most cases...
- $server_name = strtolower(htmlspecialchars_decode($this->io_handler->get_header_variable(
- 'Host',
- $this->io_handler->get_server_variable('SERVER_NAME')
- )));
-
- // HTTP HOST can carry a port number...
- if (strpos($server_name, ':') !== false)
- {
- $server_name = substr($server_name, 0, strpos($server_name, ':'));
- }
-
- $script_path = htmlspecialchars_decode($this->io_handler->get_server_variable('PHP_SELF'));
-
- if (!$script_path)
- {
- $script_path = htmlspecialchars_decode($this->io_handler->get_server_variable('REQUEST_URI'));
- }
-
- $script_path = str_replace(array('\\', '//'), '/', $script_path);
- $script_path = trim(dirname(dirname($script_path)));
-
- // Server data
- $cookie_secure = $this->io_handler->get_input('cookie_secure', $cookie_secure);
- $server_protocol = $this->io_handler->get_input('server_protocol', $server_protocol);
- $force_server_vars = $this->io_handler->get_input('force_server_vars', 0);
- $server_name = $this->io_handler->get_input('server_name', $server_name);
- $server_port = $this->io_handler->get_input('server_port', $server_port);
- $script_path = $this->io_handler->get_input('script_path', $script_path);
-
- // Clean up script path
- if ($script_path !== '/')
- {
- // Adjust destination path (no trailing slash)
- if (substr($script_path, -1) === '/')
- {
- $script_path = substr($script_path, 0, -1);
- }
-
- $script_path = str_replace(array('../', './'), '', $script_path);
-
- if ($script_path[0] !== '/')
- {
- $script_path = '/' . $script_path;
- }
- }
-
- // Check if data is sent
- if ($this->io_handler->get_input('submit_server', false))
- {
- $this->install_config->set('cookie_secure', $cookie_secure);
- $this->install_config->set('server_protocol', $server_protocol);
- $this->install_config->set('force_server_vars', $force_server_vars);
- $this->install_config->set('server_name', $server_name);
- $this->install_config->set('server_port', $server_port);
- $this->install_config->set('script_path', $script_path);
- }
- else
- {
- // Render form
- $server_form = array(
- 'cookie_secure' => array(
- 'label' => 'COOKIE_SECURE',
- 'description' => 'COOKIE_SECURE_EXPLAIN',
- 'type' => 'radio',
- 'options' => array(
- array(
- 'value' => 0,
- 'label' => 'NO',
- 'selected' => (!$cookie_secure),
- ),
- array(
- 'value' => 1,
- 'label' => 'YES',
- 'selected' => ($cookie_secure),
- ),
- ),
- ),
- 'force_server_vars' => array(
- 'label' => 'FORCE_SERVER_VARS',
- 'description' => 'FORCE_SERVER_VARS_EXPLAIN',
- 'type' => 'radio',
- 'options' => array(
- array(
- 'value' => 0,
- 'label' => 'NO',
- 'selected' => true,
- ),
- array(
- 'value' => 1,
- 'label' => 'YES',
- 'selected' => false,
- ),
- ),
- ),
- 'server_protocol' => array(
- 'label' => 'SERVER_PROTOCOL',
- 'description' => 'SERVER_PROTOCOL_EXPLAIN',
- 'type' => 'text',
- 'default' => $server_protocol,
- ),
- 'server_name' => array(
- 'label' => 'SERVER_NAME',
- 'description' => 'SERVER_NAME_EXPLAIN',
- 'type' => 'text',
- 'default' => $server_name,
- ),
- 'server_port' => array(
- 'label' => 'SERVER_PORT',
- 'description' => 'SERVER_PORT_EXPLAIN',
- 'type' => 'text',
- 'default' => $server_port,
- ),
- 'script_path' => array(
- 'label' => 'SCRIPT_PATH',
- 'description' => 'SCRIPT_PATH_EXPLAIN',
- 'type' => 'text',
- 'default' => $script_path,
- ),
- 'submit_server' => array(
- 'label' => 'SUBMIT',
- 'type' => 'submit',
- )
- );
-
- $this->io_handler->add_user_form_group('SERVER_CONFIG', $server_form);
-
- $this->io_handler->send_response();
- throw new user_interaction_required_exception();
- }
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 0;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return '';
- }
-}
diff --git a/phpBB/install/module/requirements/module.php b/phpBB/install/module/requirements/module.php
deleted file mode 100644
index d87ca15128..0000000000
--- a/phpBB/install/module/requirements/module.php
+++ /dev/null
@@ -1,97 +0,0 @@
-<?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\module\requirements;
-
-use phpbb\install\exception\user_interaction_required_exception;
-
-class module extends \phpbb\install\module_base
-{
- public function run()
- {
- $tests_passed = true;
-
- // Recover install progress
- $task_index = 0;
-
- // Run until there are available resources
- while ($this->install_config->get_time_remaining() > 0 && $this->install_config->get_memory_remaining() > 0)
- {
- // Check if task exists
- if (!isset($this->task_collection[$task_index]))
- {
- break;
- }
-
- // Recover task to be executed
- try
- {
- /** @var \phpbb\install\task_interface $task */
- $task = $this->container->get($this->task_collection[$task_index]);
- }
- catch (InvalidArgumentException $e)
- {
- throw new task_not_found_exception($this->task_collection[$task_index]);
- }
-
- // Iterate to the next task
- $task_index++;
-
- // Check if we can run the task
- if (!$task->is_essential() && !$task->check_requirements())
- {
- continue;
- }
-
- $test_result = $task->run();
- $tests_passed = ($tests_passed) ? $test_result : false;
- }
-
- // Check if tests have failed
- 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();
- }
-
- // Log install progress
- $current_task_index = $task_index - 1;
- $this->install_config->set_finished_task($this->task_collection[$current_task_index], $current_task_index);
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_step_count()
- {
- return 0;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_navigation_stage_path()
- {
- return array('install', 0, 'requirements');
- }
-}
diff --git a/phpBB/install/module/requirements/task/check_filesystem.php b/phpBB/install/module/requirements/task/check_filesystem.php
deleted file mode 100644
index 5b944b8415..0000000000
--- a/phpBB/install/module/requirements/task/check_filesystem.php
+++ /dev/null
@@ -1,273 +0,0 @@
-<?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\module\requirements\task;
-
-/**
- * Checks filesystem requirements
- */
-class check_filesystem extends \phpbb\install\task_base
-{
- /**
- * @var \phpbb\filesystem\filesystem_interface
- */
- protected $filesystem;
-
- /**
- * @var array
- */
- protected $files_to_check;
-
- /**
- * @var bool
- */
- protected $tests_passed;
-
- /**
- * @var string
- */
- protected $phpbb_root_path;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $response;
-
- /**
- * Constructor
- *
- * @param \phpbb\filesystem\filesystem_interface $filesystem filesystem handler
- * @parma \phpbb\install\helper\iohandler\iohandler_interface $response response helper
- * @param string $phpbb_root_path relative path to phpBB's root
- * @param string $php_ext extension of php files
- */
- public function __construct(\phpbb\filesystem\filesystem_interface $filesystem,
- \phpbb\install\helper\iohandler\iohandler_interface $response,
- $phpbb_root_path,
- $php_ext)
- {
- parent::__construct(true);
-
- $this->filesystem = $filesystem;
- $this->response = $response;
- $this->phpbb_root_path = $phpbb_root_path;
-
- $this->tests_passed = false;
-
- // Files/Directories to check
- // All file/directory names must be relative to phpBB's root path
- $this->files_to_check = array(
- array(
- 'path' => 'cache/',
- 'failable' => false,
- 'is_file' => false,
- ),
- array(
- 'path' => 'store/',
- 'failable' => false,
- 'is_file' => false,
- ),
- array(
- 'path' => 'files/',
- 'failable' => false,
- 'is_file' => false,
- ),
- array(
- 'path' => 'images/avatars/upload/',
- 'failable' => true,
- 'is_file' => false,
- ),
- array(
- 'path' => "config.$php_ext",
- 'failable' => false,
- 'is_file' => true,
- ),
- );
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- $this->tests_passed = true;
-
- // Check files/directories to be writable
- foreach ($this->files_to_check as $file)
- {
- if ($file['is_file'])
- {
- $this->check_file($file['path'], $file['failable']);
- }
- else
- {
- $this->check_dir($file['path'], $file['failable']);
- }
- }
-
- return $this->tests_passed;
- }
-
- /**
- * Sets $this->tests_passed
- *
- * @param bool $is_passed
- */
- protected function set_test_passed($is_passed)
- {
- // If one test failed, tests_passed should be false
- $this->tests_passed = (!$this->tests_passed) ? false : $is_passed;
- }
-
- /**
- * Check if a file is readable and writable
- *
- * @param string $file Filename
- * @param bool $failable Whether failing test should interrupt installation process
- */
- protected function check_file($file, $failable = false)
- {
- $path = $this->phpbb_root_path . $file;
- $exists = $writable = true;
-
- // Try to create file if it does not exists
- if (!file_exists($path))
- {
- $fp = @fopen($path, 'w');
- @fclose($fp);
- try
- {
- $this->filesystem->phpbb_chmod($path,
- \phpbb\filesystem\filesystem_interface::CHMOD_READ | \phpbb\filesystem\filesystem_interface::CHMOD_WRITE
- );
- $exists = true;
- }
- catch (\phpbb\filesystem\exception\filesystem_exception $e)
- {
- // Do nothing
- }
- }
-
- if (file_exists($path))
- {
- if (!$this->filesystem->is_writable($path))
- {
- $writable = false;
- }
- }
- else
- {
- $exists = $writable = false;
- }
-
- $this->set_test_passed(($exists && $writable) || $failable);
-
- if (!($exists && $writable))
- {
- $title = ($exists) ? 'FILE_NOT_WRITABLE' : 'FILE_NOT_EXISTS';
- $description = array($title . '_EXPLAIN', $file);
-
- if ($failable)
- {
- $this->response->add_warning_message($title, $description);
- }
- else
- {
- $this->response->add_error_message($title, $description);
- }
- }
- }
-
- /**
- * Check if a directory is readable and writable
- *
- * @param string $dir Filename
- * @param bool $failable Whether failing test should abort the installation process
- */
- protected function check_dir($dir, $failable = false)
- {
- $path = $this->phpbb_root_path . $dir;
- $exists = $writable = false;
-
- // Try to create the directory if it does not exist
- if (!file_exists($path))
- {
- try
- {
- $this->filesystem->mkdir($path, 0777);
- $this->filesystem->phpbb_chmod($path,
- \phpbb\filesystem\filesystem_interface::CHMOD_READ | \phpbb\filesystem\filesystem_interface::CHMOD_WRITE
- );
- $exists = true;
- }
- catch (\phpbb\filesystem\exception\filesystem_exception $e)
- {
- // Do nothing
- }
- }
-
- // Now really check
- if (file_exists($path) && is_dir($path))
- {
- try
- {
- $exists = true;
- $this->filesystem->phpbb_chmod($path,
- \phpbb\filesystem\filesystem_interface::CHMOD_READ | \phpbb\filesystem\filesystem_interface::CHMOD_WRITE
- );
- }
- catch (\phpbb\filesystem\exception\filesystem_exception $e)
- {
- // Do nothing
- }
- }
-
- if ($this->filesystem->is_writable($path))
- {
- $writable = true;
- }
-
- $this->set_test_passed(($exists && $writable) || $failable);
-
- if (!($exists && $writable))
- {
- $title = ($exists) ? 'DIRECTORY_NOT_WRITABLE' : 'DIRECTORY_NOT_EXISTS';
- $description = array($title . '_EXPLAIN', $dir);
-
- if ($failable)
- {
- $this->response->add_warning_message($title, $description);
- }
- else
- {
- $this->response->add_error_message($title, $description);
- }
- }
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 0;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return '';
- }
-}
diff --git a/phpBB/install/module/requirements/task/check_server_environment.php b/phpBB/install/module/requirements/task/check_server_environment.php
deleted file mode 100644
index 50efdc55a2..0000000000
--- a/phpBB/install/module/requirements/task/check_server_environment.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?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\module\requirements\task;
-
-/**
- * Installer task that checks if the server meats phpBB requirements
- */
-class check_server_environment extends \phpbb\install\task_base
-{
- /**
- * @var \phpbb\install\helper\database
- */
- protected $database_helper;
-
- /**
- * @var \phpbb\install\helper\iohandler\iohandler_interface
- */
- protected $response_helper;
-
- /**
- * @var bool
- */
- protected $tests_passed;
-
- /**
- * Constructor
- *
- * @param \phpbb\install\helper\database $database_helper
- * @param \phpbb\install\helper\iohandler\iohandler_interface $response
- */
- public function __construct(\phpbb\install\helper\database $database_helper,
- \phpbb\install\helper\iohandler\iohandler_interface $response)
- {
- $this->database_helper = $database_helper;
- $this->response_helper = $response;
- $this->tests_passed = true;
-
- parent::__construct(true);
- }
-
- /**
- * {@inheritdoc}
- */
- public function run()
- {
- //
- // Check requirements
- // The error messages should be set in the check_ functions
- //
-
- // Check PHP version
- $this->check_php_version();
-
- // Check for getimagesize()
- $this->check_image_size();
-
- // Check for PCRE support
- $this->check_pcre();
-
- // Check for JSON support
- $this->check_json();
-
- // Check for dbms support
- $this->check_available_dbms();
-
- return $this->tests_passed;
- }
-
- /**
- * Sets $this->tests_passed
- *
- * @param bool $is_passed
- */
- protected function set_test_passed($is_passed)
- {
- // If one test failed, tests_passed should be false
- $this->tests_passed = (!$this->tests_passed) ? false : $is_passed;
- }
-
- /**
- * Check if the requirements for PHP version is met
- */
- protected function check_php_version()
- {
- $php_version = PHP_VERSION;
-
- if (version_compare($php_version, '5.3.9') < 0)
- {
- $this->response_helper->add_error_message('PHP_VERSION_REQD', 'PHP_VERSION_REQD_EXPLAIN');
-
- $this->set_test_passed(false);
- return;
- }
-
- $this->set_test_passed(true);
- }
-
- /**
- * Checks if the installed PHP has getimagesize() available
- */
- protected function check_image_size()
- {
- if (!@function_exists('getimagesize'))
- {
- $this->response_helper->add_error_message('PHP_GETIMAGESIZE_SUPPORT', 'PHP_GETIMAGESIZE_SUPPORT_EXPLAIN');
-
- $this->set_test_passed(false);
- return;
- }
-
- $this->set_test_passed(true);
- }
-
- /**
- * Checks if the installed PHP supports PCRE
- */
- protected function check_pcre()
- {
- if (@preg_match('//u', ''))
- {
- $this->set_test_passed(true);
- return;
- }
-
- $this->response_helper->add_error_message('PCRE_UTF_SUPPORT', 'PCRE_UTF_SUPPORT_EXPLAIN');
-
- $this->set_test_passed(false);
- }
-
- /**
- * Checks whether PHP's JSON extension is available or not
- */
- protected function check_json()
- {
- if (@extension_loaded('json'))
- {
- $this->set_test_passed(true);
- return;
- }
-
- $this->response_helper->add_error_message('PHP_JSON_SUPPORT', 'PHP_JSON_SUPPORT_EXPLAIN');
-
- $this->set_test_passed(false);
- }
-
- /**
- * Check if any supported DBMS is available
- */
- protected function check_available_dbms()
- {
- $available_dbms = $this->database_helper->get_available_dbms(false, true);
-
- if ($available_dbms['ANY_DB_SUPPORT'])
- {
- $this->set_test_passed(true);
- return;
- }
-
- $this->response_helper->add_error_message('PHP_SUPPORTED_DB', 'PHP_SUPPORTED_DB_EXPLAIN');
-
- $this->set_test_passed(false);
- }
-
- /**
- * {@inheritdoc}
- */
- static public function get_step_count()
- {
- return 0;
- }
-
- /**
- * {@inheritdoc}
- */
- public function get_task_lang_name()
- {
- return '';
- }
-}