Форум -> Система оформления -> Переключение тем оформления |
Переключение тем оформления |
---|
LepRiKonS | Дата: 15.06.2008, в 22:44 | Сообщение №1 |
  ПользовательПользователь №: 215 Сообщений: 39
 | Вопрос такой. Можно ли сделать автоматическое переключение тем? Т.Е. допустим через определенное количество дней.
У меня две темы оформления, разных цветов. Заказчик попросил сделать автоматическое переключение. |
|
|
SHAKA1 | Дата: 16.06.2008, в 14:08 | Сообщение №2 |
  УчастникПользователь №: 323 Сообщений: 77
 | Кхм...ну попробуй так, по идее должно работать:
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| <?php //-----------------------------------------------------------------------Настройки //#############--1-вкл. смену 0-выкл смену темы $offon='1'; //#############--Кол-во часов после которых тема смениться $chas='2'; //#############--Путь до временного файла $ftmp="cache/ntemp.php"; //############---Название тем, которые меняем $nthemone="Тема№1"; $nthemtwo="Тема№2"; //-----------------------------------------------------------------------
$cachetime = 60*60*$chas; if ($offon=='1') { if (file_exists($ftmp)) $raz=mktime() - filemtime($ftmp); else { $fp = fopen($ftmp, "w"); $tmpcontent = ""; fwrite($fp, $tmpcontent); fclose($fp); }
if (file_exists($ftmp) && $raz<=$cachetime) $ThemeSel=$nthemone; else if (file_exists($ftmp) && $raz<=$cachetime*2) $ThemeSel=$nthemtwo; else { $ThemeSel=$nthemtwo; @unlink($ftmp); $fp = fopen($ftmp, "w"); $tmpcontent = ""; fwrite($fp, $tmpcontent); fclose($fp); } } ?> |
З.Ы
Т.к ты не указал версию системы, то я дал тебе пример как это можно сделать, а куда уж его вставлять думай сам.... |
|
|
LepRiKonS | Дата: 17.06.2008, в 10:08 | Сообщение №3 |
  ПользовательПользователь №: 215 Сообщений: 39
 | SHAKA1, извините :)
версия системы 2.3. куда код вставлять я не понял. =(
если не сложно, объясните пожалуйста что происходит в коде.
хочется разобраться во всем 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно LepRiKonS 17.06.2008 г. в 10:09:46 |
|
|
SHAKA1 | Дата: 18.06.2008, в 05:11 | Сообщение №4 |
  УчастникПользователь №: 323 Сообщений: 77
 |
1. Создаем в корне сайта папку cache (www.сайт.ru/cache), устанавливаем на нёё права 777
2. Открываем function/function.php ищем в нём функцию get_theme() и в неё, в самый конец, перед
return $ThemeSel;
}
вставляем:
PHP - Код | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <?php //-----------------------------------------------------------------------Настройки //#############--1-вкл. смену 0-выкл смену темы $offon='1'; //#############--1-вкл. смену 0-выкл смену темы для пользователей $offonuser='1'; //#############--Кол-во часов после которых тема смениться $chas='2'; //#############--Путь до временного файла $ftmp="cache/ntemp.php"; //############---Название тем, которые меняем $nthemone="Stability"; $nthemtwo="News"; //-----------------------------------------------------------------------Настройки if (is_user($user) && $offonuser=='0') { $utheme = $user[5]; if (file_exists("templates/$utheme") && $utheme != "") $ThemeSel = $utheme; else $ThemeSel = $Default_Theme; } else { $cachetime = 60*60*$chas; if ($offon=='1') { if (file_exists($ftmp)) $raz=mktime() - filemtime($ftmp); else { $fp = fopen($ftmp, "w"); $tmpcontent = ""; fwrite($fp, $tmpcontent); fclose($fp); } if (file_exists("templates/$nthemone") && $nthemone != "" && file_exists($ftmp) && $raz<=$cachetime) $ThemeSel=$nthemone; else if (file_exists("templates/$nthemtwo") && $nthemtwo!= "" && file_exists($ftmp) && $raz<=$cachetime*2) $ThemeSel=$nthemtwo; else { $ThemeSel=$nthemone; @unlink($ftmp); $fp = fopen($ftmp, "w"); $tmpcontent = ""; fwrite($fp, $tmpcontent); fclose($fp); } } } ?> |
Цитата | что происходит в коде |
в папке cache создаем файл, затем проверяем сколько часов назад он был создан, если со времени его создания прошло меньше часов чем мы задали ($cachetime), то тема у нас №1, если со времени его создания прошло меньше часов чем мы задали умноженое на два ($cachetime*2) то тема №2, иначе файл удаляем и повторяем всё сначала...вроде так...хотя возможно можно было бы сделать попроще...
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Отредактированно SHAKA1 18.06.2008 г. в 05:13:45 |
|
|
LepRiKonS | Дата: 18.06.2008, в 07:49 | Сообщение №5 |
  ПользовательПользователь №: 215 Сообщений: 39
 | SHAKA1, Спасибо! Код еще не пробовал, но хоть что-то понятно.
Вопрос такой, а зачекм:
Цитата | если со времени его создания прошло меньше часов чем мы задали умноженое на два ($cachetime*2) то тема №2 |
а именно зачем на 2 умножать? |
|
|
SHAKA1 | Дата: 18.06.2008, в 13:39 | Сообщение №6 |
  УчастникПользователь №: 323 Сообщений: 77
 | Цитата | а именно зачем на 2 умножать? |
Ну смотри, допустим мы задали время три дня, т. е если время в промежутке 0 до 3-х дней (=$cachetime) то тема №1, иначе если промежуток от 3-х дней до 6-ти (=$cachetime*2) тема №2, иначе повторяем всё сначала... Вот, как то так.... |
|
|
LepRiKonS | Дата: 18.06.2008, в 15:43 | Сообщение №7 |
  ПользовательПользователь №: 215 Сообщений: 39
 | SHAKA1, т.е. это только для двух тем, так? если тем будет больше надо будет дописывать код? |
|
|
SHAKA1 | Дата: 20.06.2008, в 15:53 | Сообщение №8 |
  УчастникПользователь №: 323 Сообщений: 77
 | Цитата | т.е. это только для двух тем, так?если тем будет больше надо будет дописывать код? |
ну да, т.к:
Цитата | У меня две темы оформления, разных цветов. Заказчик попросил сделать автоматическое переключение. |
Хотя, думаю, что сделать так, что бы можно было менять сколько угодно тем, несложно...если конечно нужно.... |
|
|
Yakut | Дата: 27.06.2008, в 17:19 | Сообщение №9 |
  ПользовательПользователь №: 411 Сообщений: 29
 | Самый лучший вариант. Это поставить форму на верху сайта, чтоб пользователь мог сам менять шаблон твоего сайта. Поверь мне я уже сталкивался с этим. |
|
|
LepRiKonS | Дата: 23.07.2008, в 17:17 | Сообщение №10 |
  ПользовательПользователь №: 215 Сообщений: 39
 | Yakut, можешь предоставить код?:) |
|
|
LepRiKonS | Дата: 18.09.2008, в 01:42 | Сообщение №11 |
  ПользовательПользователь №: 215 Сообщений: 39
 | Yakut, К сожаленью твой вариант не помог  |
|
|
|
Вы не можете ответить в тему анонимно, пожалуйста, войдите или зарегистрируйтесь!
|