stylehub/lib/routing.php
2024-01-16 19:39:54 +01:00

74 lines
2.2 KiB
PHP

<?php
function getProtocol(){
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && !empty($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
return "https://";
} else {
return "http://";
}
}
function getPage($routerConfig){
$default_page = "domov";
$default_site = "home";
$template_dir = "templates/";
$static_page_dir = "pages/";
$dynamic_page_dir = "dynamic/";
$subdomain = basename(explode('.', $_SERVER['HTTP_HOST'])[0]);
$domain = basename(explode('.', $_SERVER['HTTP_HOST'])[1]);
$tld = basename(explode('.', $_SERVER['HTTP_HOST'])[2]);
$page_name = basename($_SERVER["QUERY_STRING"]);
$protocol = getProtocol();
if (empty($tld)){
header("Location: $protocol$default_site.$subdomain.$domain/$default_page");
return;
}
if (empty($page_name)){
header("Location: $protocol$subdomain.$domain.$tld/$default_page");
return;
}
$page_dir = "pages/";
$dynamic_page_file = $page_dir . $subdomain . "/" . $page_name . ".php";
$page_file = $page_dir . $subdomain . "/" . $page_name . ".html";
$dynamic_page_file_global = $page_dir . "global/" . $page_name . ".php";
$page_file_global = $page_dir . "global/" . $page_name . ".html";
$skeleton = file_get_contents($template_dir . "skeleton.html");
$nav = file_get_contents($template_dir . "nav.html");
if (file_exists($dynamic_page_file_global)){
$page = include_once $dynamic_page_file_global;
}
elseif (file_exists($page_file_global)){
$page = file_get_contents($page_file_global);
}
elseif (file_exists($dynamic_page_file)){
$page = include_once $dynamic_page_file;
}
elseif (file_exists($page_file)){
$page = file_get_contents($page_file);
}
else{
$page = file_get_contents($template_dir . "404.html");
}
$navpages = generateNavigation($static_page_dir, $protocol, $subdomain, $domain, $tld, $default_page, $page_name);
$nav = str_replace("__NAV_PAGES__", $navpages, $nav);
$out = $skeleton;
$out = str_replace("__TEMPLATE__NAV__", $nav, $out);
$out = str_replace("__TEMPLATE__PAGE__", $page, $out);
$out = str_replace("__TEMPLATE_PAGE_NAME__", $page_name, $out);
return $out;
}
?>