Подсветка администраторов в "Кто на сайте?"

Тема в разделе "Разделение прав доступа", создана пользователем K2209, 13.11.2007.

  1. Offline

    K2209 Недавно здесь

    Регистрация:
    09.11.2007
    Сообщения:
    14
    Симпатии:
    0
    Доброго всем вечера.
    Задача передо мной следущая: в блоке "Кто на сайте?" все пользователи, вне зависимости от иерархии, показываются одинаково. Хочу, чтобы имя супер-администратора выделялось каким-нибудь цветом, например, красным.
    В "модулях" имеем следущий файлик mod_whosonline.php, в котором сначала определяется:

    1. Гость или юзер, их количество:
    Код (PHP):
    1. if ($showmode==0 || $showmode==2) {
    2.     $query = "SELECT guest, usertype"
    3.     . "\n FROM #__session"
    4.     ;
    5.     $database->setQuery( $query );
    6.     $sessions = $database->loadObjectList();
    7.  
    8.     // calculate number of guests and members
    9.     $user_array     = 0;
    10.     $guest_array    = 0;
    11.     foreach( $sessions as $session ) {
    12.         // if guest increase guest count by 1
    13.         if ( $session->guest == 1 && !$session->usertype ) {
    14.             $guest_array++;
    15.         }
    16.         // if member increase member count by 1
    17.         if ( $session->guest == 0 ) {
    18.             $user_array++;
    19.         }
    20.     }
    21.  
    22.     // check if any guest or member is on the site
    23.     if ($guest_array != 0 || $user_array != 0) {
    24.         $output .= _WE_HAVE;
    25.         // guest count handling
    26.         if ($guest_array==1) {
    27.         // 1 guest only
    28.             $output .= sprintf( _GUEST_COUNT, $guest_array );
    29.         } else if ($guest_array > 1) {
    30.         // more than 1 guest
    31.             $output .= sprintf( _GUESTS_COUNT, $guest_array );
    32.         }
    33.    
    34.         // if there are guests and members online
    35.  
    36.     if ($guest_array != 0 && $user_array != 0) {
    37.             $output .= _AND;
    38.         }
    39.  
    40.         // member count handling
    41.         if ($user_array==1) {
    42.         // 1 member only
    43.             $output .= sprintf( _MEMBER_COUNT, $user_array );
    44.         } else if ($user_array > 1) {
    45.         // more than 1 member
    46.             $output .= sprintf( _MEMBERS_COUNT, $user_array );
    47.         }
    48.  
    49.         $output .= _ONLINE;
    50.     }
    51. }

    2. Собственное имя пользователя:
    Код (PHP):
    1. if ($showmode > 0) {
    2.     $query = "SELECT DISTINCT a.username"
    3.     ."\n FROM #__session AS a"
    4.     ."\n WHERE a.guest = 0"
    5.     ;
    6.     $database->setQuery($query);
    7.     $rows = $database->loadObjectList();
    8.    
    9.     if ( count( $rows ) ) {
    10.         // output
    11.         $output .= '<ul>';
    12.     foreach($rows as $row) {
    13.             $output .= '<li>';
    14.             $output .= '<strong>';
    15.             $output .= $row->username;
    16.             $output .= '</strong>';
    17.             $output .= '</li>';
    18.     }
    19.         $output .= '</ul>';
    20.     }
    21. }
    22.  
    23. echo $output;
    24. ?>

    Вопрос: Как в разделе определения имени юзера дополнительно проверить его статус (обычный/супер-админ) и вывести стандартным образом инфу так, чтобы обычные были отображены по обычному, а имя супер-админа выделено красным, к примеру? Заранее спасибо за помощь!
     
  2.  
  3. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    Ответ: Подсветка администраторов в "Кто на сайте?"

    Сделать INNER JOIN #__session с таблицей #__users по полю username. А из таблицы #__users вытащить поле usertype. По нему и проверять, например "Super administrator" может быть.
     
  4. Offline

    K2209 Недавно здесь

    Регистрация:
    09.11.2007
    Сообщения:
    14
    Симпатии:
    0
    Ответ: Подсветка администраторов в "Кто на сайте?"

    Спасибо за ответ, попробую наваять нечто подобное, хотя я еще очень слабоват в написании пхп-кодов - мало что понимаю, но буду стараться.

    Добавлено через 56 минут
    Мда. Я, к сожалению, не понимаю как это сделать.. В моих книжках по пхп для новичков одна вода и абстрактные примеры, а тут нужны практические знания - не потяну такое, хотя желание есть. Если кто-то напишет как пример или урок - многим новичкам будет хорошее подспорье по языку и написанию подобных запросов к БД с выводом избирательных данных, а уж как выполнить у полученного результата изменение цвета - вообще темный лес и труба, это на хороший уровень понимания пхп.
     
    Последнее редактирование: 13.11.2007
  5. cooldog
    Offline

    cooldog Недавно здесь

    Регистрация:
    30.01.2007
    Сообщения:
    48
    Симпатии:
    1
    Пол:
    Мужской
    Ответ: Подсветка администраторов в "Кто на сайте?"

    Как вариант, поставить CB и модуль CB кто на сайте, или поковырять модуль CB.
    CB разным группам разный цвет даёт.
     
    K2209 нравится это.
  6. Offline

    K2209 Недавно здесь

    Регистрация:
    09.11.2007
    Сообщения:
    14
    Симпатии:
    0
    Ответ: Подсветка администраторов в "Кто на сайте?"

    Спасибо, попробую..
     

Поделиться этой страницей

Загрузка...