Динамический выбор цветов и тем на странице - PullRequest
0 голосов
/ 16 января 2010

Я хочу создать страницу с помощью PHP таким образом, чтобы страница содержала несколько параметров и тем изменения цвета, выбирая те цвета или темы, которые должны отображаться на той же странице.Любые предложения или сценарий для этого?

1 Ответ

2 голосов
/ 16 января 2010

Один из самых простых способов получить какую-то персонализированную тему для php-сайта - это использовать разные таблицы стилей для разных тем и сохранять их в браузере пользователя куки . Не самый идеальный, но работает для большинства пользователей.

Допустим, у вас есть 3 таблицы стилей с именами default.css, theme1.css и theme2.css.

default.css:

body {
  color: blue,
  background-color: white;
  font-family: arial;
}

theme1.css:

body {
  color: black,
  background-color: yellow;
  font-family: verdana;
}

Вот пример кода для вывода ссылки на другую таблицу стилей в зависимости от того, что было сохранено в файлах cookie, иначе используйте файл по умолчанию.

<head>
<?php
if (!isset($_COOKIE['siteTheme']))
  echo '<link rel="stylesheet" type="text/css" href="/css/' . $_COOKIE["siteTheme"] . '" />";
else
  echo '<link rel="stylesheet" type="text/css" href="/css/default.css" />';
?>
<!-- other elements in head -->
</head>

Чтобы сохранить выбранную пользователем тему, у вас может быть выпадающий список или гиперссылки на страницу, которая затем установит файлы cookie.

Скажите гиперссылку на "setTheme.php?theme=theme1", "theme=theme2" и т. Д.

Или выпадающая форма

<form method='get' action='/setTheme.php'>
<select name='theme' onchange='this.form.submit();'>
<option value='default'>default</option>
<option value='theme1'>Theme 1</option>
<option value='theme2'>Theme 2</option>
</select>
</form>   

На странице setTheme.php добавьте следующее:

<?php
$expire=time()+60*60*24*30; //exipiry of the cookie
setcookie("siteTheme", $_GET["theme"], $expire); //store the selected theme to cookie
?>

Затем верните ссылку на домашнюю страницу с кодом выбора таблицы стилей темы (первый справа вверху), и все готово.

PS: не будет работать, если браузеры не поддерживают файлы cookie или файлы cookie отключены.

Отказ от ответственности: я не проверял фактические коды выше, но концептуально это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...