51 lines
980 B
PHP
51 lines
980 B
PHP
<?php namespace UptimeStatus;
|
|
|
|
class Router {
|
|
|
|
public function get_path(): string {
|
|
$url = $_SERVER["REQUEST_URI"];
|
|
$parsed_url = parse_url($url);
|
|
$path = "";
|
|
if (isset($parsed_url["path"])) {
|
|
$path = substr($parsed_url["path"], 1);
|
|
}
|
|
if ($path == "" && isset($_GET["q"])) {
|
|
$path = "{$_GET["q"]}";
|
|
}
|
|
return $path;
|
|
}
|
|
|
|
public function get_page($path): string {
|
|
$pages = Config::get("pages");
|
|
$slugs = array_keys($pages);
|
|
foreach ($slugs as $page) {
|
|
if ($path == $page) {
|
|
return $page;
|
|
}
|
|
}
|
|
return $slugs[0];
|
|
}
|
|
|
|
public function render() {
|
|
|
|
$path = $this->get_path();
|
|
$slug = $this->get_page($path);
|
|
|
|
$backend_ids = Config::get("pages")[$slug];
|
|
|
|
if (!is_array($backend_ids)) $backend_ids = [$backend_ids];
|
|
|
|
$status = null;
|
|
foreach ($backend_ids as $bid) {
|
|
$status = new Status($bid, $slug);
|
|
$page = $status->get_page();
|
|
if ($page) {
|
|
$status->display();
|
|
return;
|
|
}
|
|
}
|
|
echo "Failed to load data!";
|
|
|
|
}
|
|
|
|
} |