1
0
Fork 0

Merge pull request from ByteHamster/configure-baseuri

Added config option for base uri
This commit is contained in:
H. Lehmann 2020-06-12 23:19:50 +02:00 committed by GitHub
commit f599a9c285
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 47 additions and 27 deletions
Core/Frameworks
Baikal/Model/Config
Flake
config

View file

@ -65,8 +65,9 @@ class Standard extends \Baikal\Model\Config {
"cal_enabled" => true,
"dav_auth_type" => "Digest",
"admin_passwordhash" => "",
"auth_realm" => "BaikalDAV"
];
"auth_realm" => "BaikalDAV",
"base_uri" => ""
];
function __construct() {
$this->aData["invite_from"] = "noreply@" . $_SERVER['SERVER_NAME']; // Default value

View file

@ -172,31 +172,7 @@ class Framework extends \Flake\Core\Framework {
define("PROJECT_PATH_DOCUMENTROOT", PROJECT_PATH_ROOT . "html/");
# Determine PROJECT_BASEURI
$sScript = substr($_SERVER["SCRIPT_FILENAME"], strlen($_SERVER["DOCUMENT_ROOT"]));
$sDirName = str_replace("\\", "/", dirname($sScript)); # fix windows backslashes
if ($sDirName !== ".") {
$sDirName = self::appendSlash($sDirName);
} else {
$sDirName = "/";
}
$sBaseUrl = self::rmBeginSlash(self::rmProjectContext($sDirName));
define("PROJECT_BASEURI", self::prependSlash($sBaseUrl)); # SabreDAV needs a "/" at the beginning of BASEURL
# Determine PROJECT_URI
$sProtocol = \Flake\Util\Tools::getCurrentProtocol();
$sHttpBaseUrl = strtolower($_SERVER["REQUEST_URI"]);
$sHttpBaseUrl = self::rmQuery($sHttpBaseUrl);
$sHttpBaseUrl = self::rmScriptName($sHttpBaseUrl, $sScript);
$sHttpBaseUrl = self::rmProjectContext($sHttpBaseUrl);
define("PROJECT_URI", $sProtocol . "://" . $_SERVER["HTTP_HOST"] . $sHttpBaseUrl);
unset($sScript);
unset($sDirName);
unset($sBaseUrl);
unset($sProtocol);
unset($sHttpBaseUrl);
self::defineBaseUri();
#################################################################################################
@ -227,6 +203,48 @@ class Framework extends \Flake\Core\Framework {
self::initDb();
}
protected static function defineBaseUri() {
try {
$config = Yaml::parseFile(PROJECT_PATH_CONFIG . "baikal.yaml");
if (isset($config["system"]["base_uri"]) && $config["system"]["base_uri"] !== "") {
// SabreDAV needs a "/" at the beginning of BASEURL
define("PROJECT_BASEURI",
self::prependSlash(self::appendSlash($config["system"]["base_uri"])));
define("PROJECT_URI", \Flake\Util\Tools::getCurrentProtocol() . "://"
. $_SERVER["HTTP_HOST"] . PROJECT_BASEURI);
return;
}
} catch (\Exception $e) {
error_log($e);
}
$sScript = substr($_SERVER["SCRIPT_FILENAME"], strlen($_SERVER["DOCUMENT_ROOT"]));
$sDirName = str_replace("\\", "/", dirname($sScript)); // fix windows backslashes
if ($sDirName !== ".") {
$sDirName = self::appendSlash($sDirName);
} else {
$sDirName = "/";
}
$sBaseUrl = self::rmBeginSlash(self::rmProjectContext($sDirName));
define("PROJECT_BASEURI", self::prependSlash($sBaseUrl)); // SabreDAV needs a "/" at the beginning of BASEURL
# Determine PROJECT_URI
$sProtocol = \Flake\Util\Tools::getCurrentProtocol();
$sHttpBaseUrl = strtolower($_SERVER["REQUEST_URI"]);
$sHttpBaseUrl = self::rmQuery($sHttpBaseUrl);
$sHttpBaseUrl = self::rmScriptName($sHttpBaseUrl, $sScript);
$sHttpBaseUrl = self::rmProjectContext($sHttpBaseUrl);
define("PROJECT_URI", $sProtocol . "://" . $_SERVER["HTTP_HOST"] . $sHttpBaseUrl);
unset($sScript);
unset($sDirName);
unset($sBaseUrl);
unset($sProtocol);
unset($sHttpBaseUrl);
}
protected static function initDb() {
try {
$config = Yaml::parseFile(PROJECT_PATH_CONFIG . "baikal.yaml");

View file

@ -7,6 +7,7 @@ system:
dav_auth_type: 'Digest'
admin_passwordhash: 5fe794627e1f841f8debba065e2c807a
auth_realm: BaikalDAV
base_uri: ''
database:
encryption_key: 5d3f0fa0192e3058ea70f1bb20924add
sqlite_file: "absolute/path/to/Specific/db/db.sqlite"