die("Access Denied");
}
use PHPFusion\Database\DatabaseFactory;
require_once __DIR__ . '/autoloader.php';
require_once __DIR__ . '/core_functions_include.php';
require_once fusion_detect_installation();
require_once __DIR__ . '/core_constants_include.php';
require_once __DIR__ . '/multisite_include.php';
// Database handler functions
/**
 * Documentation:
 * Default connection id = "default";
 * To debug sql statements (showing sql queries) insert either of the following line before "require_once footer.php"
 * $log = PHPFusion\Database\Driver\MySQL::getGlobalQueryLog();
 * $log = PHPFusion\Database\Driver\PDOMySQL::getGlobalQueryLog();
 * @todo: missing doc - usage to set true false otherwise.. ?
 * @todo: add a form_select("debug_sql", "Debug SQL?", fusion_get_settings("debug_sql"), array(
 *      "options" => array($locale['disable'], $locale['enable']),
 * 		"inline"=>true)); into administration/security_settings.php
 */
DatabaseFactory::setDefaultDriver(intval($pdo_enabled) === 1 ? DatabaseFactory::DRIVER_PDO_MYSQL : DatabaseFactory::DRIVER_MYSQL);
DatabaseFactory::registerConfiguration(DatabaseFactory::getDefaultConnectionID(), array('host' => $db_host, 'user' => $db_user, 'password' => $db_pass, 'database' => $db_name, 'debug' => DatabaseFactory::isDebug(DatabaseFactory::getDefaultConnectionID())));
DatabaseFactory::registerConfigurationFromFile(__DIR__ . '/../config.db.php');
require_once DB_HANDLERS . "all_functions_include.php";
require_once __DIR__ . "/system_images.php";
require_once __DIR__ . "/output_handling_include.php";
require_once __DIR__ . "/translate_include.php";
require_once __DIR__ . "/notify/notify.inc.php";
require_once __DIR__ . "/sqlhandler.inc.php";
require_once __DIR__ . "/defender.inc.php";
require_once __DIR__ . "/dynamics/dynamics.inc.php";
/**
 * Connect to the database
 *
 * @param string $db_host
 * @param string $db_user
 * @param string $db_pass
 * @param string $db_name
 * @param boolean $halt_on_error If it is TRUE, the script will halt in case of error
 * @return array
 */
function dbconnect($db_host, $db_user, $db_pass, $db_name, $halt_on_error = TRUE)
{
    $connection_success = TRUE;
    $dbselection_success = TRUE;
    try {
        DatabaseFactory::connect($db_host, $db_user, $db_pass, $db_name, array('debug' => DatabaseFactory::isDebug('default')));
    } catch (\Exception $e) {
        $connection_success = $e instanceof SelectionException;
        $dbselection_success = FALSE;
        if ($halt_on_error and !$connection_success) {
            die("<strong>Unable to establish connection to MySQL</strong><br />" . $e->getCode() . " : " . $e->getMessage());
        } elseif ($halt_on_error) {
            die("<strong>Unable to select MySQL database</strong><br />" . $e->getCode() . " : " . $e->getMessage());
        }
    }
    return array('connection_success' => $connection_success, 'dbselection_success' => $dbselection_success);
}