Забыли пароль?
Запросите новый здесь.

Автор темы: jikaka
ID темы: 871
Информация:
Тема содержит 10 сообщения, была просмотрена 5792 раз.
Просмотр темы
PHP-Fusion Russia » Расширения » Хаки/скрипты
 Распечатать тему
Быстрая смена темы для пользователей - панель
jikaka
Быстрая смена темы для пользователей - панель

Описание:
Боковая панель, которая позволяет быстрое переключение тем пользователями.

Установка:
Переходим:
Панель администратора -> Администрирование системы -> Панели

Создаем новую панель с такими характеристиками:
Содержание панели:
Скачать исходники  Код
openside("name");
  echo "content";
closeside();



заменяем на:
Скачать исходники  Код
openside("Смена темы");
if (iMEMBER && ($settings['userthemes'] == 1 || iADMIN)) {
   $theme_files = makefilelist(THEMES, '.|..|templates', true, 'folders');
   array_unshift($theme_files, 'Default');
 
   if(isset($_POST['uip_utheme'])&&in_array($_POST['uip_utheme'], $theme_files)){
      $result = dbquery("UPDATE ".DB_USERS." SET user_theme='{$_POST['uip_utheme']}' WHERE user_id='{$userdata['user_id']}' LIMIT 1");
      redirect(FUSION_REQUEST);
   }
   else {
      $_POST['uip_utheme'] = '';
   }
 
   echo '<form name="uip_ftheme" method="post" action="'.FUSION_REQUEST.'" style="text-align:center;">
   <select name="uip_utheme" class="textbox" style="width:100px;" onChange=\'document.forms["uip_ftheme"].submit();\'>'.makefileopts($theme_files, ($_POST['uip_utheme']?$_POST['uip_utheme']:$userdata['user_theme'])).'</select>
   <noscript><br/><input name="uip_sbtn" class="button" type="submit"></noscript>
   </form>';
}
closeside();


 
Web
Zaxap
А можно это как-нибудь ссылками организовать?
Зло не дремлет, а я добрый...
 
Alipapa
На многих сайтах у меня так сделано, но только не на отдельной панели, а добавлено в user_info_panel
А можно это как-нибудь ссылками организовать?
Можно, если через get, а не через post сделать
 
Web
Zaxap
Alipapa, можно пример кода, что-ли, ну или еще чего?)
Зло не дремлет, а я добрый...
 
Alipapa
Пишу не проверяя, поэтому возможно, что с ошибками, но как-то так:
Скачать исходники  Код
openside("Смена темы");
 if (iMEMBER && ($settings['userthemes'] == 1 || iADMIN)) {
 
    if(isset($_GET['uip_utheme'])){
       $result = dbquery("UPDATE ".DB_USERS." SET user_theme='{$_GET['uip_utheme']}' WHERE user_id='{$userdata['user_id']}' LIMIT 1");
       redirect(FUSION_REQUEST);
    }
 
   $temp = opendir('form');
   while ($folder = readdir($temp)) {
      switch ($folder) {
         case '.':
            break;
         case '..':
            break;
         default:
            echo "<a href='".FUSION_SELF."?uip_utheme=".$folder."'>".$folder."</a> | ";
      }
   }
   closedir($temp);
 }
 closeside();


 
Web
Zaxap
Alipapa, спасибо, суть понял, но что-то оно ругается...не угодила 9, 10 и 20 строчкиad
Зло не дремлет, а я добрый...
 
Alipapa
$temp = opendir('form'); неправильно, надо $temp = opendir('".THEMES."');
еще папку templates надо исключить
Скачать исходники  Код
case 'templates':
break;



Изменил(а) Alipapa, 19.07.2013 20:33
 
Web
Zaxap
:) Спасибо! Все работает! Только надо
Загрузить источник  GeSHi: PHP
  1. $temp = opendir(THEMES);
Добавлено за 0.030 секунд, используя GeSHi 1.0.8.10


И еще "На этой странице обнаружена циклическая переадресация"...
Зло не дремлет, а я добрый...
 
Alipapa
Ну это наверное из-за redirect(FUSION_REQUEST);
Надо заменить FUSION_REQUEST на FUSION_SELF (варианта из 1-го поста это не касается) и цикличного редиректа не будет. Да, здесь, в отличие от первоначального варианта, не всегда после смены темы будет возврат на ту же страницу, т.к. будут отброшены get-параметры. Это можно решить, но думаю, это не критично, чтобы с ним возиться
Изменил(а) Alipapa, 20.07.2013 10:20
x1
 
Web
Zaxap
Спасибо, Alipapa, получилось! Ура! Благодарствую! ab
Зло не дремлет, а я добрый...
 

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)   SchreiBear SchreiBear (625)