Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.06.2015, 15:05
Новичок на форуме
Отправить личное сообщение для mixagame Посмотреть профиль Найти все сообщения от mixagame
 
Регистрация: 29.06.2015
Сообщений: 4

Смена файла CSS нажатием кнопки в Joomla 3.4.1
Всем добрый день! Делаю сайт на Joomla 3.4.1. Хочу сделать переключатель дизайна сайта, т.е., чтобы при нажатии на ссылку, дизайн поменялся, еще раз - обратно. И так, чтобы при переходе на другую страницу дизайн сохранился тот, который был выбран в последний раз. В природе существуют такие плагины? Извиняюсь заранее, если эта тема уже была, просто пальцем ткните.
Ответить с цитированием
  #2 (permalink)  
Старый 29.06.2015, 15:23
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Примерно так.

change_theme.php:

<?php
$style = $_GET['style'];
setcookie('style', $style, time() + 60 * 60 * 24 * 365, '/');
header('Location: /');
?>


В head на всех страницах:
<link href="/temp/css/<?=$_COOKIE['style'] ?: 'stand'?>.css" rel="stylesheet" type="text/css">


Для применения:
<a href="/.../change_theme.php?style=stand">Стандартная тема</a>
<a href="/.../change_theme.php?style=red">Красная тема</a>
<a href="/.../change_theme.php?style=gold">Золотая тема</a>


Ну и конечно же, сами файлы хранить в таком виде: stand.css, red.css.

Последний раз редактировалось ruslan_mart, 29.06.2015 в 15:27.
Ответить с цитированием
  #3 (permalink)  
Старый 29.06.2015, 15:59
Новичок на форуме
Отправить личное сообщение для mixagame Посмотреть профиль Найти все сообщения от mixagame
 
Регистрация: 29.06.2015
Сообщений: 4

Хм, на взгляд довольно просто, но все таки пара вопросов есть.
1. По сути всё это помещаешь в index.php?
2. 'style' - подходящее слово? Обычно все шаблоны располагаются в папке templates.
Ответить с цитированием
  #4 (permalink)  
Старый 29.06.2015, 16:05
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

Ruslan_xDD,
$_GET['style']; а если не определено? а где фильтрация входящих параметров?
Приведу пример не только подключения стилей, а и использования другого шаблона
пишем простенький системный плагин и на событие onAfterInitialise вешаем такой код:
Код
$input = JFactory::getApplication()->input;
$template = $input->getCmd( 'template', '' );
if ( $template !== '' ) {
	$input->set( 'template', $template );
	$conf = JFactory::getConfig();
	setcookie( 'templateChanged', $template, time() + 8640000, $conf->get( 'cookie_path', '/' ), $conf->get( 'cookie_domain', '' ) );
}
if ( !empty( $_COOKIE['templateChanged'] ) ) {
	$input->set( 'template', $_COOKIE['templateChanged'] );
}

Делаем два шаблона один ваш второй для слабо видящих..
переключение просто добавить например для переключения шаблонов с protostar на beez3 и обратно
в protostar:
<a href="<?php echo JRoute::_('&template=beez3'); ?>">Шаблон для слабовидящих</a>

в beez3:
<a href="<?php echo JRoute::_('&template=protostar'); ?>">Обычный шаблон</a>

Если не знаете как написать плагин, зайдите к Саше на сайт он для Вас написал конструктор http://inet-reklama.com/sozdanie-plagina.html
Ответить с цитированием
  #5 (permalink)  
Старый 29.06.2015, 16:26
Новичок на форуме
Отправить личное сообщение для mixagame Посмотреть профиль Найти все сообщения от mixagame
 
Регистрация: 29.06.2015
Сообщений: 4

А не легче будет в модуле всё это прописать?
Ответить с цитированием
  #6 (permalink)  
Старый 29.06.2015, 16:40
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

mixagame,
Если знаешь как легче, чего спрашиваешь?
Css можно спокойно подгружать динамически
function loadCss(href) {
	var link = document.createElement("link");
	link.rel = "stylesheet";
	link.href = href;
	document.head.appendChild(link);
}
loadCss('http://mypath/custom.css');

хранить состояние в куках, в storage, сессии на выбор
Ответить с цитированием
  #7 (permalink)  
Старый 29.06.2015, 17:08
Новичок на форуме
Отправить личное сообщение для mixagame Посмотреть профиль Найти все сообщения от mixagame
 
Регистрация: 29.06.2015
Сообщений: 4

Всем спасибо, кто ответил. Завтра отпишусь о результатах
Ответить с цитированием
  #8 (permalink)  
Старый 29.06.2015, 17:42
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Poznakomlus, это я как простой пример показал, для наводки. Естественно, нужна фильтрация и т.д., наводка есть, а за идеальным модулем - в раздел "Работа".
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка файла с фиксированым местоположением по нажатию кнопки greencard AJAX и COMET 16 17.07.2013 15:22
Смена css стилей stvord Элементы интерфейса 5 03.09.2011 21:10
Как получить атрибут из CSS файла ? sionus Events/DOM/Window 1 04.01.2010 09:39
Доступ к input или css файла bobroff jQuery 7 22.12.2009 22:21
Подключение CSS файла SAA Серверные языки и технологии 1 22.09.2009 13:09