1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-05 15:16:16 +02:00

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.
This commit is contained in:
Joas Schilling 2014-03-18 11:00:43 +01:00
commit 1af7697143
4 changed files with 71 additions and 36 deletions

View File

@ -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');
}

View File

@ -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&language=' . $language)),
));
return;
}
require($phpbb_root_path . 'config.' . $phpEx);
require($phpbb_root_path . 'includes/constants.' . $phpEx);
require($phpbb_root_path . 'includes/functions_convert.' . $phpEx);
@ -258,6 +264,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&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
*/

View File

@ -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(

View File

@ -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;
}