Нашел в сети статью Как сделать тёмную тему для сайта
Сделал всё по инструкции. Всё работает, кроме одного. Почему-то сохранение происходит только на главной странице сайта. Если менять тему на другой странице, то выбор темы не сохраняется. Подскажите, что сделал не так?
В main.tpl в head добавил это
И это
В низ перед </body> добавил js
И создал php файл themes.php с содержимым
Что сделал не так? Почему только на главной происходит сохранение?
Сделал всё по инструкции. Всё работает, кроме одного. Почему-то сохранение происходит только на главной странице сайта. Если менять тему на другой странице, то выбор темы не сохраняется. Подскажите, что сделал не так?
В main.tpl в head добавил это
Код:
<?php session_start();if(!isset($_SESSION["theme"])){$_SESSION["theme"] = "light";} ?>
И это
Код:
<link href="{THEME}/style/<?php echo $_SESSION['theme']; ?>.css" type="text/css" rel="stylesheet" id="theme-link">
В низ перед </body> добавил js
Код:
var btn = document.getElementById("theme-button");
var link = document.getElementById("theme-link");
btn.addEventListener("click", function () { ChangeTheme(); });
function ChangeTheme()
{
let lightTheme = "/templates/kinowalk-utf8/style/light.css";
let darkTheme = "/templates/kinowalk-utf8/style/dark.css";
var currTheme = link.getAttribute("href");
var theme = "";
if(currTheme == lightTheme)
{
currTheme = darkTheme;
theme = "dark";
}
else
{
currTheme = lightTheme;
theme = "light";
}
link.setAttribute("href", currTheme);
Save(theme);
function Save(theme)
{
var Request = new XMLHttpRequest();
Request.open("GET", "./themes.php?theme=" + theme, true); // путь к php файлу отвечающий за сохранение
Request.send();
}
};
И создал php файл themes.php с содержимым
PHP:
<?php
session_start();
if(isset($_GET["theme"]))
{
$theme = $_GET["theme"];
if($theme == "light" || $theme == "dark")
{
$_SESSION["theme"] = $theme;
}
}
?>
Что сделал не так? Почему только на главной происходит сохранение?
Последнее редактирование:

