X   Сообщение сайта
(Сообщение закроется через 2 секунды)

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Адресная строка
Z1dan3
сообщение 2011-03-18, 1:23
Сообщение #1
Invision Power
Иконка группы

Группа: Дизайнеры
Сообщений: 268
Регистрация: 2008-12-13
Из: Украина

Репутация:   нет  
Всего: 14


Приветствую. Всё же хочу узнать, есть или нет в системе возможность менять шаблоны использую запрос через адресную строку вида: site.ru/~skin=default - или что-то в этом роде? Блок смены темы оформления у меня на РС5 отказывается работать. Как быть?
Перейти в начало страницы
+Цитировать сообщение
Гость_SHAKA1_*
сообщение 2011-03-20, 15:20
Сообщение #2



Гости





Цитата (Z1dan3 @ 2011-03-18, 6:23)
Приветствую. Всё же хочу узнать, есть или нет в системе возможность менять шаблоны использую запрос через адресную строку вида: site.ru/~skin=default - или что-то в этом роде? Блок смены темы оформления у меня на РС5 отказывается работать. Как быть?


Вот, исправил блок:


<?php
if (!defined('CMS')) die('Попытка взлома?');

#1-вкл кэш, 0-выкл кэш
$mythemes['cache']=1;
#Сюда записываем темы админ панели или те, которые отображать мы не хотим
$mythemes['admin']=array('Audora');

if ($mythemes['cache']==1 && $Mainclass->Cache->Get('block_theme')) $mythemes['list']=unserialize($Mainclass->Cache->Get('block_theme'));
else {
$mythemes['list']=glob($Mainclass->root_path.$Mainclass->Template->theme_path.'/*',GLOB_ONLYDIR);
if ($mythemes['cache']==1) $Mainclass->Cache->Put('block_theme',serialize($mythemes['list']),86400,false);
}
foreach($mythemes['list'] as &$a)	{
$mythemes['template']=basename($a);
if (!in_array($mythemes['template'], $mythemes['admin'])) $mythemes['option'][]='<option value="'.$mythemes['template'].'"'.(($mythemes['template']==$Mainclass->Template->theme)?' selected="selected"':'').'>› '.(($mythemes['template']==$Mainclass->Template->theme)?'Текущая: ':'').$mythemes['template'].'</option>';
}
if (count($mythemes['option'])>1) {
$content .='<table align="center"><form name="theme" method="post" action="">';
$content .='<tr><td colspan="2" align="center"><select style="width:150px;" name="theme" size="1" class="select">'.implode($mythemes['option'],'').'</select></td></tr>';
$content .='<tr><td colspan="2" align="center"><input name="save_theme" style="margin-top:5px;" type="submit" value="Изменить тему" /></td></tr></form></table>';
}
?>


ну и конечно в файл:

index.php, тот что в корне не забываем вставить:


if (isset($_POST['theme'])) {$Mainclass->Template->theme=$_POST['theme'];$Mainclass->SCookie('theme',$_POST['theme'],365,true);} elseif ($Mainclass->GCookie('theme')) $Mainclass->Template->theme=$Mainclass->GCookie('theme');


после:

$Mainclass->LoadService();


И ещё заодно вопрос к Александру, можно ли изменить тему оформления без этой вставки в index.php, что бы весь код был в одном файле блока?


Сообщение отредактировал SHAKA1 - 2011-03-20, 15:50
Перейти в начало страницы
+Цитировать сообщение
Z1dan3
сообщение 2011-03-20, 15:26
Сообщение #3
Invision Power
Иконка группы

Группа: Дизайнеры
Сообщений: 268
Регистрация: 2008-12-13
Из: Украина

Репутация:   нет  
Всего: 14


SHAKA1,
спасибо за апдейт для блока, но можно всё таки такое сделать для адресной строки?
Перейти в начало страницы
+Цитировать сообщение
Гость_SHAKA1_*
сообщение 2011-03-20, 15:36
Сообщение #4



Гости





Цитата (Z1dan3 @ 2011-03-20, 20:26)
SHAKA1,
спасибо за апдейт для блока, но можно всё таки такое сделать для адресной строки?


Вместо того что я писал выше в index.php добавляем:

if (isset($_GET['theme'])) {
$Mainclass->Template->theme=$_GET['theme'];
$Mainclass->SCookie('theme',$_GET['theme'],365,true);
} elseif ($Mainclass->GCookie('theme')) $Mainclass->Template->theme=$Mainclass->GCookie('theme');


В данном случае блок ставить не нужно...

Тема меняется так: http://сайт.ру/index.php?theme=Тема
P.S Никаких проверок на существование темы я там не делал.



Сообщение отредактировал SHAKA1 - 2011-03-20, 15:40
Перейти в начало страницы
+Цитировать сообщение
Z1dan3
сообщение 2011-03-20, 16:04
Сообщение #5
Invision Power
Иконка группы

Группа: Дизайнеры
Сообщений: 268
Регистрация: 2008-12-13
Из: Украина

Репутация:   нет  
Всего: 14


Огромное спасибо!!!
То, что доктор прописал :-)
Перейти в начало страницы
+Цитировать сообщение

Ответить в данную темуНачать новую тему
0 чел. читают эту тему (гостей: 0, скрытых пользователей: 0)
Пользователей: 0

 
RSS Текстовая версия 0.0443 сек.    11 запросов    GZIP включен    Сейчас: 2024-04-18, 15:46