0 Пользователей и 1 Гость просматривают эту тему.
  • 12 Ответов
  • 1574 Просмотров
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Модно ли реализовать (и как) такое: по ссылке в материале изменить параметр шаблона и применить изменения.
В частности, интересуют 2 вещи:
1. Вместо одного css-файла подключить другой;
2. Изменить (переопределить) background у класса.
В идеале - без js, чисто на php, но это в идеале...
« Последнее редактирование: 31.12.2013, 14:07:05 от b2z »
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Вот здесь http://www.bonusthemes.com/demo/joomla25/education/index.php?option=com_content&view=article&id=28&Itemid=181 пример, как по ссылке изменяется цветовая схема сайта, как это работает? Правда там используется К2, которого у меня нет, и я не знаю, нужен ли он (а вдруг?).
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
В чем собственно проблема? Ловите переменную по ссылке, устанавливаете куку, проверяете если кука есть то подгружаете какой нить дополнительный CSS
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Хмм... Алгоритм понятен, да вот с реализацией не очень. Примерчик дадите или ткнете ссылочкой?
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
В общем, поисследовав вышеприведенный мною пример, понял, что придется писать свой хелпер, и без js не обойтись, что мне пока слабо, а тупо копипастить с другого шаблона, не разобравшись, что к чему, - считаю, себя не уважать. Пока обойдусь тем, что есть. Опыт приходит с годами :)
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Хмм... Алгоритм понятен, да вот с реализацией не очень. Примерчик дадите или ткнете ссылочкой?
то есть ничего не понятно ;)
Код: php
<?php 
$input = JFactory::getApplication()->input;
$styleColor = $input->getCmd( 'style', '' );
if ( !empty( $styleColor ) ) {
$conf = JFactory::getConfig();
$cookie_domain = $conf->get( 'cookie_domain', '' );
$cookie_path = $conf->get( 'cookie_path', '/' );
setcookie( 'styleColor', $styleColor, time() + 8640000, $cookie_path, $cookie_domain );
} else {
if ( isset( $_COOKIE['styleColor'] ) ) {
$styleColor = $_COOKIE['styleColor'];
}
}
if ( !empty( $styleColor ) ) {
JFactory::getDocument()->addStyleSheet( JUri::base(). 'templates/your_template/css/' . $styleColor . '.css' );
}
?>
Ссылки
<a href="<?php echo JRoute('&style=green'); ?>">Зеленый</a>
<a href="<?php echo JRoute('&style=red'); ?>">Красный</a>

в /templates/your_template/css/ долджны лежать файлы green.css, red.css, и т.д. как вы назовете их.. и в них переопределить какие то элементы что бы был другой у них цвет например! Пожключение этого файла должно быть после основного файла шаблона, разместить этот код можно в шаблоне!
« Последнее редактирование: 30.12.2013, 12:54:00 от Istaan »
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
то есть ничего не понятно
...
разместить этот код можно в шаблоне!
Ну не скажу, что ничего, все-таки, пока примеры искал, много перечитал и доки, и кода, и - надеюсь - не бесследно.
Непонятно только одно: 8640000 - это что? время жизни кука? в чем измерение?
Я так думаю, в конце head воткнуть этот код - самое то?

Проверил.
Ссылка <a href="<?php echo JRoute('&style=ks_camomile'); ?>... не работает, браузер при парсинге HTML останавливается на <a href=" и дальше тишина, страница после этого места не отображается, вся разметка летит. Это пишется в шаблоне, в футере.
« Последнее редактирование: 30.12.2013, 20:00:54 от AlekVolsk »
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
а как <?php echo JRoute('&style=ks_camomile'); ?> можно повесить на пункт меню?

в шаблоне решил: <a href="<?php echo $_SERVER['REQUEST_URI']; ?>?style=ks_camomile">...</a>
осталось в меню запихнуть :)
кстати, в демке bt_education из меню вызов главной страницы идет.
« Последнее редактирование: 30.12.2013, 20:54:44 от AlekVolsk »
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
покажите ваш шаблон, ибо вы делаете что то не там и не так!
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Пожалуйста:
Спойлер
[свернуть]

http://www.alekvolsk.ru/ здесь демку делаю.
Обратите внимание на непонятное поведение пункта меню "Оформление": на денвере все ок, на хосте непонятка...
Все подпункты пункта "Оформления" имеют ссыллку вида /?style=ks_camomile
Сам пункт меню "Оформление" имеет тип Материалы » Избранные материалы
« Последнее редактирование: 31.12.2013, 01:03:26 от AlekVolsk »
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Вот после
  $doc->addStyleSheet('/templates/'.$this->template.'/css/template.css');
вставить код:
Код: php
$input = JFactory::getApplication()->input;
$styleColor = $input->getCmd( 'style', '' );
if ( !empty( $styleColor ) ) {
$conf = JFactory::getConfig();
$cookie_domain = $conf->get( 'cookie_domain', '' );
$cookie_path = $conf->get( 'cookie_path', '/' );
setcookie( 'styleColor', $styleColor, time() + 8640000, $cookie_path, $cookie_domain );
} else {
if ( isset( $_COOKIE['styleColor'] ) ) {
$styleColor = $_COOKIE['styleColor'];
}
}
if ( !empty( $styleColor ) ) {
JFactory::getDocument()->addStyleSheet( JUri::base(). 'templates/your_template/css/' . $styleColor . '.css' );
}

а вот это: <a href="<?php echo JRoute::_('&style=ks_camomile'); ?>">Ссылка 1</a> вставить вне <?php ?>
обваливалось бо я не то скопировал, синим выделил то что забыл!
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
Ок, работает.
Я, в общем-то, об этом сам догадался. Единственная правка, я подгружаю стиль по умолчанию сразу (иначе коряво выглядит :) ) (выделено синим)
$styleColor=$input->getCmd('style','ks_stone');

Но мне надобно это теперь в меню запихать, а то на главной работает - на остальных слетает.


В общем, потому и слетает, что стиль по умолчанию указывал, пришлось грузить его отдельно, до этого кода.
Осталось только разобраться, почему выпадающее меню у пункта меню появляется только после клика на нем...
« Последнее редактирование: 31.12.2013, 01:38:16 от AlekVolsk »
*

b2z

  • Глобальный модератор
  • 7290
  • 778 / 0
  • Разраблю понемногу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

[Решено] Перестали работать переходы по меню сайта

Автор AlexP750

Ответов: 12
Просмотров: 480
Последний ответ 06.02.2024, 12:42:26
от AlexP750
Как изменить lang=&quot;ru-ru&quot;?

Автор Maffo

Ответов: 0
Просмотров: 403
Последний ответ 07.04.2023, 16:07:22
от Maffo
[Решено] Ссылка на домен и текущий шаблон в блоге категории

Автор goga_pgasovav

Ответов: 2
Просмотров: 343
Последний ответ 06.03.2023, 16:30:23
от goga_pgasovav
[Решено] Не добавляется CSS-класс страницы

Автор Strelok760

Ответов: 16
Просмотров: 1302
Последний ответ 02.03.2023, 16:14:47
от Танита Сар
[Решено] Получить список тегов каждого материала в блоге категории

Автор goga_pgasovav

Ответов: 1
Просмотров: 393
Последний ответ 02.03.2023, 14:20:21
от goga_pgasovav