Сайт сообщества | Клуб пользователей | О проекте

Имя
Пароль
ПравилаРегистрацияСправка
Сообщения за деньПоиск

Вернуться   Клуб пользователей портальной системы RUNCMS > Опен Ресурс > Разработчикам > Готовые хаки

Ответ
 
Опции темы Опции просмотра
Zormax вне форума Zormax
Старожил

Аватар для Zormax

| Цитировать Старый #1 03-30-2005, 16:39

Зайдите ко мне на сайт на главной, справа увидите блок "Выбор темы"...
Хотите такой?

Начнем:

Создаем собственный блок, выставляем ему видимость, расположение и тип контента как PHP.

Код нашего блока:

PHP код:
global $xoopsConfig;
$path XOOPS_ROOT_PATH."/themes";

$d dir($path);
while (
$entry $d->read()) {
if ((
$entry != ".") && ($entry != "..") && ($entry != "index.html")) {
$theme_list[] = $entry;
}
}

echo 
"
<div align='center'><br>
<form name='theme_select' method='post' action='./index.php'>
<select name='theme' onchange='submit()'>"
;

$curr_theme getTheme();
natcasesort($theme_list);

foreach (
$theme_list as $value) {
if (
$value == $curr_theme) { $chk " selected='selected'"; } else { unset($chk); }
echo 
"<option value='$value'$chk>$value</option>";
}

echo 
"
</select><br />

<script type='text/javascript'>
function switchTheme(value) {
document.theme_select.theme.options.selectedIndex = document.theme_select.theme.options.selectedIndex + value;
document.theme_select.submit();
}

document.write('<br><b>' + document.theme_select.theme.options.length + '</b>');
</script>

Темы (а)

</form></div>"

Далее заходим в корневую папку include находим файл functions.php, открываем его и находим функцию:

function getTheme() {

Всю функию приводить здесь не буду, скажу нам надо её заменить полностью на нашу функцию (код ниже):

PHP код:
function getTheme($theme="") {
global 
$xoopsConfig$xoopsUser$theme$HTTP_POST_VARS$HTTP_COOKIE_VARS;

// START INSERT
    
if ( !empty($HTTP_POST_VARS['theme'])  && !defined("theme") ) {
        
$value  $HTTP_POST_VARS['theme'];
        
header("Set-Cookie: theme=$value; 0; path=/");
        
define("theme"$value);
        return 
$value;

    } elseif ( !empty(
$HTTP_COOKIE_VARS['theme']) && !defined("theme") ) {
        
define("theme"$HTTP_COOKIE_VARS['theme']);
        return 
theme;

    } else if ( 
defined("theme") ) {
        return 
theme;
    }
// END INSERT

$themedir XOOPS_ROOT_PATH."/themes";
if (
$xoopsUser) {
$theme  $xoopsUser->getVar("theme");
} else {
return 
$xoopsConfig['default_theme'];
}


if ( @
file_exists("$themedir/$theme/theme.php") ) {
        return 
$theme;
        } else {
        return 
$xoopsConfig['default_theme'];
        }

Типа тестим...
Естественно вам надо иметь хотя бы две темы, чтобы был выбор для юзера...
Замечу, что после выбора темы, она запоминается в кокиес пользователя и неважно зарегистрирован он или просто гость...

Просьба спецов по PHP внимательно протестировать код самой функции, я хоть и шарю в PHP но всё же...

Последний раз редактировалось Zormax, 04-02-2005 в 20:09
Причина: Изменение кода


Всё для Sony Ericsson
Посетить домашнюю страницу Zormax
  Сообщения: 2,424 c 15.05.2004 | Репутация: 149
LaRok вне форума LaRok
攻殻機動隊


| Цитировать Старый #2 04-01-2005, 09:21

Посмотрю, чуть позже, когда тут с остальным разгребусь.

Давно хотелось вывод выбора тем сделать, поэтому точно будет продолжено.

Посетить домашнюю страницу LaRok
  Сообщения: 2,045 c 13.09.2003 | Репутация: 25
Zormax вне форума Zormax
Старожил

Аватар для Zormax

| Цитировать Старый #3 04-02-2005, 20:11

Так господа снова приглашаю протестить код самим на сайте, либо зайдите ко мне на сайт и на главной увидите справа блок выбора тем.

Просьба протестить в обязательном порядке!


Всё для Sony Ericsson
Посетить домашнюю страницу Zormax
  Сообщения: 2,424 c 15.05.2004 | Репутация: 149
Vor2ex вне форума Vor2ex
Старший участник

Аватар для Vor2ex

| Цитировать Старый #4 04-03-2005, 16:32

работает )

  Сообщения: 1,131 c 03.08.2004 | Репутация: ??
Zormax вне форума Zormax
Старожил

Аватар для Zormax

| Цитировать Старый #5 04-03-2005, 18:45

Что-то тестирующих мало...


Всё для Sony Ericsson
Посетить домашнюю страницу Zormax
  Сообщения: 2,424 c 15.05.2004 | Репутация: 149
thunder вне форума thunder
Старший участник

Аватар для thunder

| Цитировать Старый #6 04-03-2005, 20:10

точно... работает


Skype: thunder_rus
Icq: 235953090
Mail: thunder{собака}pisem{точка}net
  Сообщения: 580 c 16.04.2004 | Репутация: 20
Mr.Deeds вне форума Mr.Deeds
Участник

Аватар для Mr.Deeds

| Цитировать Старый #7 04-27-2005, 18:42

А как создать блок отдельно от модуля? и вообще как создавать блоки? в рунцмсе я - чайник.

  Сообщения: 132 c 17.02.2005 | Репутация: 1
Zormax вне форума Zormax
Старожил

Аватар для Zormax

| Цитировать Старый #8 04-27-2005, 19:52

Mr.Deeds*Зоходишь в управление блоками и в самом низу увидишь форму добавления нового блока...


Всё для Sony Ericsson
Посетить домашнюю страницу Zormax
  Сообщения: 2,424 c 15.05.2004 | Репутация: 149
clog вне форума clog
Зам старшего участника

Аватар для clog

| Цитировать Старый #9 04-27-2005, 21:47

Все ок.

  Сообщения: 470 c 01.10.2004 | Репутация: 3
Zormax вне форума Zormax
Старожил

Аватар для Zormax

| Цитировать Старый #10 04-27-2005, 21:51

У меня уже месяц почти работает, все пучком...
Ларок делай на поддержке с применением темного и светлого скина...


Всё для Sony Ericsson
Посетить домашнюю страницу Zormax
  Сообщения: 2,424 c 15.05.2004 | Репутация: 149
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Рейтинг@Mail.ru Хостинг провайдер Majordomo. Powered by: vBulletin Version 3.0
Copyright ©2000-2024, Jelsoft Enterprises Ltd.
Все разделы прочитаны - Руководство форума - Архив - Вверх
Rambler's Top100
Output: 89.62 Kb. compressed to 82.48 Kb. by saving 7.14 Kb. (7.97%)
Page generated in 0.09033 seconds with 11 queries