Добрый вечер, Гость! Представляем Вам наши форумы. Вы можете зарегистрироваться чтобы писать на форумах или зайдите под своим именем, если Вы уже регистрировались.
   
   


Форум
 CMS Koobi | Техническая помощь
         Переключение дизайна путем выбора css Файлов

Похожие темы  |  Печать страницы

Переключение дизайна путем выбора css Файлов


События Воскресенье, 16.05.2010, 00:19

RASH

Группа: Пользователь
Ранг: Новичок
Cообщений: 51
Регистрация: 05.11.2009
Город: Москва
Здравствуйте!
Думаю, у многих когда-нибудь возникало желание реализовать два дизайна на своем сайта, чтобы пользователь мог выбрать, какой ему больше нравится. Единственное решение, которое я знаю, это создать другую секцию и присвоеть ей другой css стиль, но это не то, что хочется, да и потом возникают новые вопросы.

Возможно ли сделать прямое переключение css файлов? Может быть, кто то уже это реализовывал на своих проектах? Думаю, этот модуль будет интересен многим и получит широкое применение! Если у кого-то уже есть решение, пожалуйста, поделитесь!
Спасибо!

Пользователь офлайн
События Воскресенье, 16.05.2010, 01:16

Status-X

Группа: Администратор
Cообщений: 3005
Регистрация: 23.10.2009
Город: Санкт-Петербург
Цитата
Автор: RASH
Здравствуйте!
Думаю, у многих когда-нибудь возникало желание реализовать два дизайна на своем сайта, чтобы пользователь мог выбрать, какой ему больше нравится. Единственное решение, которое я знаю, это создать другую секцию и присвоеть ей другой css стиль, но это не то, что хочется, да и потом возникают новые вопросы.

Возможно ли сделать прямое переключение css файлов? Может быть, кто то уже это реализовывал на своих проектах? Думаю, этот модуль будет интересен многим и получит широкое применение! Если у кого-то уже есть решение, пожалуйста, поделитесь!
Спасибо!



В корневом индексе есть вот такая волшебная строчка

PHP-код
$_SESSION[\'tpl_current\'] = (isset($_POST[\'tpl_current\']) && !empty($_POST[\'tpl_current\']) && is_dir(\'theme/\' . $_POST[\'tpl_current\'])) ? $_POST[\'tpl_current\'] :((isset($_SESSION[\'tpl_current\']) && !empty($_SESSION[\'tpl_current\'])) ? $_SESSION[\'tpl_current\'] : \'\');


Нужно всего лишь в своем шаблоне нарисовать форму и отправить методом пост, переменную tpl_current, а в ней должно находится название вашей темы. А сколько дизайнов будете подключать два или больше это без разницы




Пользователь офлайн
События Воскресенье, 16.05.2010, 12:24

RASH

Автор текущей темы
Группа: Пользователь
Ранг: Новичок
Cообщений: 51
Регистрация: 05.11.2009
Город: Москва
Вот так должна выглядеть форма? Что же заполнять в поля? Не совсем понятно, как должна выглядеть структура... Я знаю, что я не правильно создал форму, где в коде ошибки и как она должна выглядеть?
PHP-код
<form action=\"tpl_current\" method=\"post\">
<input name=\"themename1\" value=\"Шаблон 1\" type=\"text\" />
<input name=\"themename2\" value=\"Шаблон 2\" type=\"text\" />
<input value=\"Применить\" type=\"submit\" />
</form>


>>>\"...переменную tpl_current, а в ней должно находится название вашей темы. \"
Этот момент не совсем понятен...

Отредактировано RASH: 16.05.2010, 12:46:53
Пользователь офлайн
События Воскресенье, 16.05.2010, 14:39

Status-X

Группа: Администратор
Cообщений: 3005
Регистрация: 23.10.2009
Город: Санкт-Петербург
Где то так должно быть
PHP-код
<form method=\"post\" action=\"/index.php\">
  <select class=\"input\" name=\"tpl_current\">
    <option value=\"standard\" {if 
$smarty.session.tpl_current == \'standard\' || $smarty.session.tpl_current == \'\'}selected=\"selected\"{/if}>Стандартная тема</option>
    <option value=\"newtheme\" {if 
$smarty.session.tpl_current == \'newtheme\'}selected=\"selected\"{/if}>Моя тема</option>
    <option value=\"newtheme2\" {if 
$smarty.session.tpl_current == \'newtheme2\'}selected=\"selected\"{/if}>Моя тема 2</option>
  </select>
</form>


standard, newtheme, newtheme2 это название папки с Вашей темой, должно быть в каталоге theme


Пользователь офлайн
События Воскресенье, 16.05.2010, 16:18

RASH

Автор текущей темы
Группа: Пользователь
Ранг: Новичок
Cообщений: 51
Регистрация: 05.11.2009
Город: Москва
Нет, не работает... И папки theme у меня нет, и в index.php я не нашел указанной строчки... Версия системы Koobi 6.x
Пользователь офлайн
События Воскресенье, 16.05.2010, 16:20

Status-X

Группа: Администратор
Cообщений: 3005
Регистрация: 23.10.2009
Город: Санкт-Петербург
А в шестерке такого естественно нет


Пользователь офлайн
События Воскресенье, 16.05.2010, 16:47

RASH

Автор текущей темы
Группа: Пользователь
Ранг: Новичок
Cообщений: 51
Регистрация: 05.11.2009
Город: Москва
Ну вот оно и понятно... Поэтому я и ищу возможность, алтернативную, чтобы менять не весь шаблон, а хотя бы подключать другие стили...
Есть такая классная штука на jQuery, назвается jQuery styleswitcher.
Суть скрипта заключается в том, чтобы одним кликом можно переключаться между файлами стилей CSS, в результате чего изменяется дизайн сайта. При этом, что самое важное, последний использованный (включенный) юзером дизайн сохраняется.

Для того, чтобы подключить файл нужно:
PHP-код
   <link rel=\"stylesheet\" type=\"text/css\" href=\"styles1.css\" title=\"styles1\" media=\"screen\" /> 
    <link rel=\"nate stylesheet\" type=\"text/css\" href=\"styles2.css\" title=\"styles2\" media=\"screen\" /> 
    <link rel=\"nate stylesheet\" type=\"text/css\" href=\"styles3.css\" title=\"styles3\" media=\"screen\" /> 
       
    <script type=\"text/javascript\" src=\"jquery.js\"></script> 
    <script type=\"text/javascript\" src=\"styleswitch.js\"></script> 
    <script src=\"/mint/?js\" type=\"text/javascript\"></script>


и разместить на сайте три ссылки:
PHP-код

    
<ul
     <
li><a href=\"serversideSwitch.html?style=style1\" rel=\"styles1\" class=\"styleswitch\">Название 1</a></li> 
     <li><a href=\"serversideSwitch.html?style=style2\" rel=\"styles2\" class=\"styleswitch\">Название 2</a></li> 
     <li><a href=\"serversideSwitch.html?style=style3\" rel=\"styles3\" class=\"styleswitch\">Название 3</a></li> 
    </ul>


Вчера пробывал подключить, не получилось, возможно Вы можете помочь?

Есть еще вот такой вариант:
PHP-код
<script
function 
getCookie(c_name

if (
document.cookie.length>0

c_start=document.cookie.indexOf(c_name + \"=\"); 
if (c_start!=-1) 

c_start=c_start + c_name.length+1; 
c_end=document.cookie.indexOf(\";\",c_start); 
if (c_end==-1) c_end=document.cookie.length; 
return unescape(document.cookie.substring(c_start,c_end)); 


return \"\"; 

function setCookie(c_name,value,expiredays) 

var exdate=new Date(); 
exdate.setDate(exdate.getDate()+expiredays); 
document.cookie=c_name+ \"=\" +escape(value)+ 
((expiredays==null) ? \"\" : \";expires=\"+exdate.toGMTString()); 


var diz = getCookie(\'mydiz\') ? getCookie(\'mydiz\') : \'style1\', \'style2\'; 
document.write(\'<link type=\"text/css\" rel=\"StyleSheet\" href=\"http://site.ru/\'+diz+\'.css\">\'); 

function dizsave() { 
setCookie(\'mydiz\',document.getElementsByName(\'mdiz\')[0].value, 365); 
location.reload(); 

</script>


*\'style1\' - название вашего CSS, лучше, если оно будет таким же.
*http://site.ru/ - адрес на папку с CSS.

PHP-код
<select name=\"mdiz\"> 
<option value=\"style1\" selected=\"selected\">Темный</option> 
<option value=\"style2\">Светлый</option> 
</select> 
<input type=\"button\" name=\"save\" onclick=\"dizsave(); return true;\" value=\"Сохранить\" /> 


Что и где нужно изменить, чтобы заработало?

Отредактировано RASH: 16.05.2010, 16:48:12
Пользователь офлайн


Похожие темы  |  Печать страницы  |   Предыдущая тема  |   Следующая тема

Быстрый переход:  
 

 Сейчас на сайте


Пользователей: 0, Гостей: 7

Поисковые боты: 12
Googlebot(5), oBot(2), Inktomi Slurp, Unknown Bot, Yandex, TrendictionBot, BingBot

 Статистика форума


  Темы Сообщения Пользователи
За сутки:
За неделю:
За месяц:
Всего:
Мы приветствуем нового участника: Lesya

 Дни рождения


TEPMIT (34), system (22)
Печать | Copyright © 2009 - 2016 Status-X All rights reserved | Powered by CMS Status-X 1.05 | Контакты