Use languages list to generate dropdown in settings

This commit is contained in:
davidovski 2023-09-09 14:28:04 +01:00
parent 6a1dea2581
commit e99670628d
1 changed files with 17 additions and 4 deletions

View File

@ -1,6 +1,5 @@
<?php <?php
require "misc/search_engine.php"; require "misc/search_engine.php";
$opts = load_opts();
// Reset all cookies when resetting, or before saving new cookies // Reset all cookies when resetting, or before saving new cookies
if (isset($_REQUEST["reset"]) || isset($_REQUEST["save"])) { if (isset($_REQUEST["reset"]) || isset($_REQUEST["save"])) {
@ -29,6 +28,8 @@
die(); die();
} }
$opts = load_opts();
require "misc/header.php"; require "misc/header.php";
?> ?>
@ -59,7 +60,7 @@
<option value=\"ubuntu\">Ubuntu</option> <option value=\"ubuntu\">Ubuntu</option>
<option value=\"tokyo_night\">Tokyo night</option>"; <option value=\"tokyo_night\">Tokyo night</option>";
if (isset($_COOKIE["theme"])) { if (isset($opts->theme)) {
$theme = $opts->theme; $theme = $opts->theme;
$themes = str_replace($theme . "\"", $theme . "\" selected", $themes); $themes = str_replace($theme . "\"", $theme . "\" selected", $themes);
} }
@ -97,10 +98,22 @@
<div class="settings-textbox-container"> <div class="settings-textbox-container">
<div> <div>
<span>Language</span> <span>Language</span>
<select name="language">
<?php <?php
// TODO make this a dropdown
echo "<input type=\"text\" name=\"language\" placeholder=\"any\" value=\"" . htmlspecialchars($opts->language ?? "") . "\">"; $languages = json_decode(file_get_contents("static/misc/languages.json"), true);
$options = "";
$options .= "<option value=\"\" " . (!isset($opts->language) ? "selected" : "") . ">Any</option>";
foreach ($languages as $lang_code => $language) {
$name = $language["name"];
$selected = $opts->language == $lang_code ? "selected" : "";
$options .= "<option value=\"$lang_code\" $selected>$name</option>";
}
echo $options;
?> ?>
</select>
</div> </div>
<div> <div>
<label>Number of results per page</label> <label>Number of results per page</label>