define('PUBLIC_SCHEMA', 'public'); define('DEV_SCHEMA', 'public'); define('TEST_SCHEMA', 'public'); define('LIVE_SCHEMA', 'public'); define('GLOBAL_DB_SCHEMA', ''); define('LOGIN_DB_SCHEMA', ''); /************* CORE HOST SETTINGS *****************/ if (file_exists(BASE . CONFIGS . 'config.host.php')) { require BASE . CONFIGS . 'config.host.php'; } if (!isset($SITE_CONFIG)) { $SITE_CONFIG = []; } /************* DB ACCESS *****************/ if (file_exists(BASE . CONFIGS . 'config.db.php')) { require BASE . CONFIGS . 'config.db.php'; } if (!isset($DB_CONFIG)) { $DB_CONFIG = []; } /************* OTHER PATHS *****************/ if (file_exists(BASE . CONFIGS . 'config.path.php')) { require BASE . CONFIGS . 'config.path.php'; } /************* MASTER INIT *****************/ // live frontend pages // ** missing live domains ** // get the name without the port list($HOST_NAME) = array_pad(explode(':', $_SERVER['HTTP_HOST'], 2), 2, null); // set HOST name define('HOST_NAME', $HOST_NAME); // BAIL ON MISSING MASTER SITE CONFIG if (!isset($SITE_CONFIG[HOST_NAME]['location'])) { throw new \InvalidArgumentException( 'Missing SITE_CONFIG entry for: "' . HOST_NAME . '". Contact Administrator' ); } // BAIL ON MISSING DB CONFIG: // we have either no db selction for this host but have db config entries // or we have a db selection but no db config as array or empty // or we have a selection but no matching db config entry if ( (!isset($SITE_CONFIG[HOST_NAME]['db_host']) && count($DB_CONFIG)) || (isset($SITE_CONFIG[HOST_NAME]['db_host']) && // missing DB CONFIG ((is_array($DB_CONFIG) && !count($DB_CONFIG)) || !is_array($DB_CONFIG) || // has DB CONFIG but no match empty($DB_CONFIG[$SITE_CONFIG[HOST_NAME]['db_host']])) ) ) { throw new \InvalidArgumentException( 'No matching DB config found for: "' . HOST_NAME . '". Contact Administrator' ); } // set SSL on $is_secure = false; if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') { $is_secure = true; } elseif ( !empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' || !empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on' ) { $is_secure = true; } if ($is_secure) { define('HOST_SSL', true); define('HOST_PROTOCOL', 'https://'); } else { define('HOST_SSL', false); define('HOST_PROTOCOL', 'http://'); } // define the db config set name, the db config and the db schema define('DB_CONFIG_NAME', $SITE_CONFIG[HOST_NAME]['db_host'] ?? ''); define('DB_CONFIG', $DB_CONFIG[DB_CONFIG_NAME] ?? []); // because we can't change constant, but we want to for db debug flag $GLOBALS['DB_CONFIG_SET'] = DB_CONFIG; // define('DB_CONFIG_TARGET', SITE_CONFIG[$HOST_NAME]['db_host_target']); // define('DB_CONFIG_OTHER', SITE_CONFIG[$HOST_NAME]['db_host_other']); // override for login and global schemas // where the edit* tables are // define('LOGIN_DB_SCHEMA', PUBLIC_SCHEMA); // where global tables are that are used by all schemas (eg queue tables for online, etc) // define('GLOBAL_DB_SCHEMA', PUBLIC_SCHEMA); // debug settings, site lang, etc define('TARGET', $SITE_CONFIG[HOST_NAME]['location'] ?? 'test'); define('DEBUG', $SITE_CONFIG[HOST_NAME]['debug_flag'] ?? false); define('SITE_LOCALE', $SITE_CONFIG[HOST_NAME]['site_locale'] ?? DEFAULT_LOCALE); define('SITE_ENCODING', $SITE_CONFIG[HOST_NAME]['site_encoding'] ?? DEFAULT_ENCODING); define('LOGIN_ENABLED', $SITE_CONFIG[HOST_NAME]['login_enabled'] ?? false); define('AUTH', $SITE_CONFIG[HOST_NAME]['auth'] ?? false); // paths // define('CSV_PATH', $PATHS[TARGET]['csv_path'] ?? ''); // define('EXPORT_SCRIPT', $PATHS[TARGET]['perl_bin'] ?? ''); // define('REDIRECT_URL', $PATHS[TARGET]['redirect_url'] ?? ''); // show all errors if debug_all & show_error_handling are enabled define('SHOW_ALL_ERRORS', true); /************* GENERAL PAGE TITLE ********/ define('G_TITLE', $_ENV['G_TITLE'] ?? ''); /************ STYLE SHEETS / JS **********/ define('ADMIN_STYLESHEET', 'edit.css'); define('ADMIN_JAVASCRIPT', 'edit.js'); define('STYLESHEET', $_ENV['STYLESHEET'] ?? 'frontend.css'); define('JAVASCRIPT', $_ENV['JAVASCRIPT'] ?? 'frontend.js'); // anything optional /************* INTERNAL ******************/ // any other global definitons in the config.other.php if (file_exists(BASE . CONFIGS . 'config.other.php')) { require BASE . CONFIGS . 'config.other.php'; } // __END__