aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@gmx.de>2014-03-18 11:00:43 +0100
committerJoas Schilling <nickvergessen@gmx.de>2014-03-18 11:00:43 +0100
commit1af769714304054e63ffaeb41cfa51801785a59d (patch)
tree6bb3de30d5a9700b758ec097b791e0abd64f1bb1 /phpBB
parent96e5a04001b31e667468634493fd1380208cabaf (diff)
parent249b9dcdb5a19e3d380a28f3df403106a41fadff (diff)
downloadforums-1af769714304054e63ffaeb41cfa51801785a59d.tar
forums-1af769714304054e63ffaeb41cfa51801785a59d.tar.gz
forums-1af769714304054e63ffaeb41cfa51801785a59d.tar.bz2
forums-1af769714304054e63ffaeb41cfa51801785a59d.tar.xz
forums-1af769714304054e63ffaeb41cfa51801785a59d.zip
Merge remote-tracking branch 'prototech/ticket/12160' into develop
* prototech/ticket/12160: [ticket/12160] Use phpbb_check_installation_exists() in the other modules. [ticket/12160] Move phpbb_check_installation_exists() to functions_install.php [ticket/12160] Check if phpBB is installed before creating phpBB container. [ticket/12160] Add function to check if phpBB is installed.
Diffstat (limited to 'phpBB')
-rw-r--r--phpBB/includes/functions_install.php19
-rw-r--r--phpBB/install/install_convert.php68
-rw-r--r--phpBB/install/install_install.php9
-rw-r--r--phpBB/install/install_update.php11
4 files changed, 71 insertions, 36 deletions
diff --git a/phpBB/includes/functions_install.php b/phpBB/includes/functions_install.php
index deb304b838..476535ae5b 100644
--- a/phpBB/includes/functions_install.php
+++ b/phpBB/includes/functions_install.php
@@ -581,3 +581,22 @@ function phpbb_ignore_new_file_on_update($phpbb_root_path, $file)
return $ignore_new_file;
}
+
+/**
+* Check whether phpBB is installed.
+*
+* @param string $phpbb_root_path Path to the phpBB board root.
+* @param string $php_ext PHP file extension.
+*
+* @return bool Returns true if phpBB is installed.
+*/
+function phpbb_check_installation_exists($phpbb_root_path, $php_ext)
+{
+ // Try opening config file
+ if (file_exists($phpbb_root_path . 'config.' . $php_ext))
+ {
+ include($phpbb_root_path . 'config.' . $php_ext);
+ }
+
+ return defined('PHPBB_INSTALLED');
+}
diff --git a/phpBB/install/install_convert.php b/phpBB/install/install_convert.php
index 1c7e2dca76..a837e9d52a 100644
--- a/phpBB/install/install_convert.php
+++ b/phpBB/install/install_convert.php
@@ -79,6 +79,21 @@ class convert
*/
class install_convert extends module
{
+ /** @var array */
+ protected $lang;
+
+ /** @var string */
+ protected $language;
+
+ /** @var \phpbb\template\template */
+ protected $template;
+
+ /** @var string */
+ protected $phpbb_root_path;
+
+ /** @var string */
+ protected $php_ext;
+
/**
* Variables used while converting, they are accessible from the global variable $convert
*/
@@ -94,6 +109,16 @@ class install_convert extends module
$this->tpl_name = 'install_convert';
$this->mode = $mode;
+ $this->lang = $lang;
+ $this->language = $language;
+ $this->template = $template;
+ $this->phpbb_root_path = $phpbb_root_path;
+ $this->php_ext = $phpEx;
+
+ if (!$this->check_phpbb_installed())
+ {
+ return;
+ }
$convert = new convert($this->p_master);
@@ -108,25 +133,6 @@ class install_convert extends module
switch ($sub)
{
case 'intro':
- // Try opening config file
- // @todo If phpBB is not installed, we need to do a cut-down installation here
- // For now, we redirect to the installation script instead
- if (@file_exists($phpbb_root_path . 'config.' . $phpEx))
- {
- include($phpbb_root_path . 'config.' . $phpEx);
- }
-
- if (!defined('PHPBB_INSTALLED'))
- {
- $template->assign_vars(array(
- 'S_NOT_INSTALLED' => true,
- 'TITLE' => $lang['BOARD_NOT_INSTALLED'],
- 'BODY' => sprintf($lang['BOARD_NOT_INSTALLED_EXPLAIN'], append_sid($phpbb_root_path . 'install/index.' . $phpEx, 'mode=install&amp;language=' . $language)),
- ));
-
- return;
- }
-
require($phpbb_root_path . 'config.' . $phpEx);
require($phpbb_root_path . 'includes/constants.' . $phpEx);
require($phpbb_root_path . 'includes/functions_convert.' . $phpEx);
@@ -259,6 +265,30 @@ class install_convert extends module
}
/**
+ * Check whether phpBB is installed.
+ * Assigns error template vars if not installed.
+ *
+ * @return bool Returns true if phpBB is installed.
+ */
+ public function check_phpbb_installed()
+ {
+ if (phpbb_check_installation_exists($this->phpbb_root_path, $this->php_ext))
+ {
+ return true;
+ }
+
+ $this->page_title = 'BOARD_NOT_INSTALLED';
+ $install_url = append_sid($this->phpbb_root_path . 'install/index.' . $this->php_ext, 'mode=install&amp;language=' . $this->language);
+
+ $this->template->assign_vars(array(
+ 'S_NOT_INSTALLED' => true,
+ 'BODY' => sprintf($this->lang['BOARD_NOT_INSTALLED_EXPLAIN'], $install_url),
+ ));
+
+ return false;
+ }
+
+ /**
* Generate a list of all available conversion modules
*/
function list_convertors($sub)
diff --git a/phpBB/install/install_install.php b/phpBB/install/install_install.php
index a2d44f2b6c..72e6f6affa 100644
--- a/phpBB/install/install_install.php
+++ b/phpBB/install/install_install.php
@@ -18,14 +18,9 @@ if (!defined('IN_INSTALL'))
if (!empty($setmodules))
{
// If phpBB is already installed we do not include this module
- if (@file_exists($phpbb_root_path . 'config.' . $phpEx) && !file_exists($phpbb_root_path . 'cache/install_lock'))
+ if (phpbb_check_installation_exists($phpbb_root_path, $phpEx) && !file_exists($phpbb_root_path . 'cache/install_lock'))
{
- include_once($phpbb_root_path . 'config.' . $phpEx);
-
- if (defined('PHPBB_INSTALLED'))
- {
- return;
- }
+ return;
}
$module[] = array(
diff --git a/phpBB/install/install_update.php b/phpBB/install/install_update.php
index 5891efb375..cdfb7ecb06 100644
--- a/phpBB/install/install_update.php
+++ b/phpBB/install/install_update.php
@@ -19,16 +19,7 @@ if (!defined('IN_INSTALL'))
if (!empty($setmodules))
{
// If phpBB is not installed we do not include this module
- if (@file_exists($phpbb_root_path . 'config.' . $phpEx) && !@file_exists($phpbb_root_path . 'cache/install_lock'))
- {
- include_once($phpbb_root_path . 'config.' . $phpEx);
-
- if (!defined('PHPBB_INSTALLED'))
- {
- return;
- }
- }
- else
+ if (!phpbb_check_installation_exists($phpbb_root_path, $phpEx) || file_exists($phpbb_root_path . 'cache/install_lock'))
{
return;
}