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


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

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

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


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

RASH

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

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

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

Status-X

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

Status-X

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


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

RASH

Автор текущей темы
Группа: Пользователь
Ранг: Новичек
Cообщений: 40
Регистрация: 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==-1c_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].value365); 
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, Гостей: 2

Поисковые боты: 15
oBot(7), Unknown Bot(5), Googlebot(2), Yandex

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


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

 Дни рождения


Marley (64), Chinare Hesenova (27)
Печать | Copyright © 2009 - 2012 Status-X All rights reserved | Powered by CMS Status-X 1.04 | Контакты