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

Sergic

  • Новичок
  • 6
  • 0 / 0
Возникла потребность через фрейм вывести частичный сайт с Joomla но в другом шаблоне(не меняя дефолтный в БД)
нашел такую штуку: добавляем после index.php ? template=tepmalete_name   но возникает проблема... все урл которіе сілаются на статьи и другие внутренние ресурсы не подставляют себе это "template=tepmalete_name"
как решить данную проблему? может можно как-то по-другому сделать вывод шаблона на лету?
*

onyx1337

  • Захожу иногда
  • 60
  • 2 / 0
  • Таганрог
я конечно могу немного ошибаться но чем тебе не подходит смена шаблона по определённым пунктам меню.
Заходишь в настройки не дефолтного шаблона и там указываешь на каких пунктах меню переключать на этот шаблон.
И вуаля  ;)
*

Dj_Dingo

  • Новичок
  • 4
  • 0 / 0
У меня также возникла необходимость менять шаблон на лету, и кстати, сайт также бедт выводится через iFrame. Не буду рассказывать, зачем это надо - долгая история, но проблема такая же - при смене шаблона через ?template=имя_шаблона шаблон меняется, но при переходе по следующей ссылке по сайту, возвращается на шаблон по умолчанию. Может кто нибудь знает как заставить Joomla запомнить выбор (сессию)?
Смена шаблонов по пунктам меню в данном случае не подходит. Смена шаблонов с помощью Template Chooser, TemplateSelector, Template Switcher и им подобных - так же не вариант, в них смена происходит через выбор шаблона в поле типа select list, а мне нужно именно ссылкой. Как из select list сделать ссылку типа index.php?bla-bla-bla для смены шаблона - я тоже не понял. Если кто знает как сделать - буду очень признателен за совет.
 Спасибо!
*

Dj_Dingo

  • Новичок
  • 4
  • 0 / 0
Я нашёл решение, по закону жанра - делюсь с общетственностью:
Для того что бы PHP сессия (?template=name) сохранялась на сайте для каждого пользователя до конца сессии (пока пользователь не покинет сайт), необходимо в каждом шаблоне, который нужно "сменять" и после смены "запоминать", желательно до указания доктайпа (<! DOCTYPE >), прописать PHP код начала сессии, а именно:
Код
<?php
 session_start();
 
 if (isset($_GET['template'])) {
 $_SESSION['template'] = $_GET['template'];
 $template = '?template='.$_SESSION['template'];
 } elseif (isset($_SESSION['template'])) {
 $template = '?template='.$_SESSION['template'];
 } else {
 $template = '';
 }
?>
Не знаю насколько это эстетично, по отношению к PHP, но работает.
Надеюсь, кому-нибудь поможет.
Спасибо за внимание.
*

Dj_Dingo

  • Новичок
  • 4
  • 0 / 0
Прошу прощения, ошибся.
Код, представленный выше, следует прописать в шаблоны и использовать совместно с плагином Template Chooser, который доступен для скачивания. Почему-то его убрали с extensions.joomla.org (http://extensions.joomla.org/extensions/2401/details), но его можно скачать на joom.ru (http://ext.joom.ru/template-chooser.html).
Сам плагин поставляется с модулем, в котором так же как и во всех остальных, выбор шаблона из выпадающего списка. Но если прописать код, который я написал выше - то модуль можно не активировать, а активировать только плагин, и менять шаблоны ссылкой вида site.ru?template=name. Сохранятся будет только смена тех шаблонов, в которых прописан код.

(Дальше к делу не относится, из раздела - я познаю мир.)
Я так понимаю, система такая - модуль, с помощью выпадающего списка, даёт выбрать шаблон, дальше, при выборе шаблона - он просто добавляет в url идентификатор сесии (?template=name), которую в свою очередь перехватывает плагин и меняет шаблоны встроенным механизмом Joomla. Также, модуль хранит эти сессии, на каждой странице, каждого шаблона, где он активирован. А мы, с помощью кода, представленного выше, храним сессии в шаблоне, вместо модуля. Видимо в модуле такой же код. По этому, получается, что модуль можно не активировать.
Так, или я чего то не понимаю? Если есть знатоки - прошу поправить. Интересно это всё...
*

Azizkz

  • Осваиваюсь на форуме
  • 15
  • 0 / 0
Я нашёл решение, по закону жанра - делюсь с общетственностью:
Для того что бы PHP сессия (?template=name) сохранялась на сайте для каждого пользователя до конца сессии (пока пользователь не покинет сайт), необходимо в каждом шаблоне, который нужно "сменять" и после смены "запоминать", желательно до указания доктайпа (<! DOCTYPE >), прописать PHP код начала сессии, а именно:
Код
<?php
 session_start();
 
 if (isset($_GET['template'])) {
 $_SESSION['template'] = $_GET['template'];
 $template = '?template='.$_SESSION['template'];
 } elseif (isset($_SESSION['template'])) {
 $template = '?template='.$_SESSION['template'];
 } else {
 $template = '';
 }
?>
Не знаю насколько это эстетично, по отношению к PHP, но работает.
Надеюсь, кому-нибудь поможет.
Спасибо за внимание.

Здравствуйте! как можно сделать тоже самое на Joomla 2.5. Все что описано выше не работает на Joomla 2.5
*

MMONSTERR

  • Захожу иногда
  • 59
  • 3 / 0
Вот мой код, без плагинов. Вставляется просто в начале index.php КАЖДОГО нужного шаблона.

Код
	
if( $_SESSION['template'] != '' ){
if( htmlspecialchars($_GET['template']) == ''){
if( stristr( $_SERVER["REQUEST_URI"], '?' ) === FALSE ){
header('Location: '.htmlspecialchars($_SERVER["REQUEST_URI"]).'?template=beez5');
exit;
}else{
header('Location: '.htmlspecialchars($_SERVER["REQUEST_URI"]).'&template=beez5');
exit;
}
}

if( htmlspecialchars($_GET['template'])!= $_SESSION['template']){
$_SESSION['template'] = '';
}
}else{
if( htmlspecialchars($_GET['template'])!= ''){
$_SESSION['template'] = htmlspecialchars($_GET['template']);
}
}

Т.е что бы переключиться на один шаблон ?template=beez5 , на другой ?template=beez_20

Я это сделал для мобильного сайта. Скачал мобильный шаблон для Joomla, и поставил код определения устройства. И просто на автомате перекидываю. + закрыл от индексации *temlpate* в robots.txt
« Последнее редактирование: 08.09.2015, 09:00:06 от MMONSTERR »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вывести путь до шаблона с помощью API Joomla?

Автор elche

Ответов: 13
Просмотров: 13745
Последний ответ 11.09.2018, 23:48:50
от DK-Scorp
Стили шаблона

Автор karkan25

Ответов: 12
Просмотров: 2896
Последний ответ 21.05.2017, 16:40:32
от karkan25
Проблема с изменением логотипа штатного шаблона rhuk_milkyway Joomla_1.5

Автор Porohok

Ответов: 6
Просмотров: 3206
Последний ответ 22.03.2017, 10:34:23
от Porohok
Настройка неадаптивного шаблона

Автор Zegeberg

Ответов: 4
Просмотров: 3148
Последний ответ 21.06.2016, 00:21:06
от Zegeberg
Редактирование шаблона

Автор gdmitry

Ответов: 1
Просмотров: 2896
Последний ответ 04.06.2016, 20:25:32
от Taatshi