From 81afd5e0281f47c0398b94aa14f1895909e26c6e Mon Sep 17 00:00:00 2001 From: DrMaxNix Date: Sun, 31 Dec 2023 14:53:20 +0100 Subject: [PATCH 1/3] :globe_with_meridians: hacky path based language selection --- meta.php | 4 +++- page/redirect/index.php | 6 +++++- page/start/index.php | 24 ++++++++++++++++++++++-- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/meta.php b/meta.php index 56b07fc..17f72c4 100644 --- a/meta.php +++ b/meta.php @@ -5,6 +5,7 @@ // DEPENDENCIES // // used extensions + static::$ext[] = "request"; static::$ext[] = "lang"; static::$ext[] = "page"; static::$ext[] = "file"; @@ -23,6 +24,7 @@ // pages static::$route["sbgg.jetzt"] = [ - ["path" => "", "target" => "page/start"] + ["path" => "", "target" => "page/start"], + ["path" => ":lang", "target" => "page/start"] ]; ?> diff --git a/page/redirect/index.php b/page/redirect/index.php index 5621fef..d4a7067 100644 --- a/page/redirect/index.php +++ b/page/redirect/index.php @@ -1,8 +1,12 @@ diff --git a/page/start/index.php b/page/start/index.php index 7803948..5076ea0 100644 --- a/page/start/index.php +++ b/page/start/index.php @@ -8,7 +8,27 @@ use Flake\File; use Flake\Project; + // HACK: CONVERT GET PARAM TO PATH PARAM // + if(isset($_GET["lang"])){ + $new_lang = $_GET["lang"]; + if($new_lang === "de") $new_lang = ""; + header("HTTP/1.1 303 See Other"); + header("Location: /" . $new_lang); + } + + + // HACK: REMOVE `DE` PATH PARAM // + if(!in_array(Project::param("lang"), [null, "en"])){ + header("HTTP/1.1 303 See Other"); + header("Location: /"); + } + + // LANGUAGE MANAGER // + // hack: fake get param from url path + $param_lang = Project::param("lang") ?? "de"; + $_GET["lang"] = $param_lang; + // initialize $lang = new Lang(list: ["de", "en"], default: "de"); @@ -406,9 +426,9 @@
- get() === "de" ? "class=\"selected\"" : "") ?> href="?lang=de">DE + get() === "de" ? "class=\"selected\"" : "") ?> href="/">DE | - get() === "en" ? "class=\"selected\"" : "") ?> href="?lang=en">EN + get() === "en" ? "class=\"selected\"" : "") ?> href="/en">EN