Блок. Кто онлайн



Код выводит сообщение вида:

Зарегистрировано пользователей — 10, в настоящее время онлайн: пользователей — 3, гостей — 2.

Пользователи онлайн

Псевдоним 1
Псевдоним 2
Псевдоним 3

Drupal 5.x

<?php
$number
= db_result(db_query('SELECT COUNT(uid) AS number FROM {users} WHERE status=1'));
        if (
user_access('access content')) {
         
$time_period = variable_get('user_block_seconds_online', 900);
         
$guests = db_fetch_object(db_query('SELECT COUNT(sid) AS count FROM {sessions} WHERE timestamp >= %d AND uid = 0', time() - $time_period));
         
$users = db_query('SELECT uid, name, access FROM {users} WHERE access >= %d AND uid != 0 ORDER BY access DESC', time() - $time_period);
         
$total_users = db_num_rows($users);
echo
"Зарегистрировано пользователей — $number, ";
          if (
$total_users == 1 && $guests->count == 1) {
           
$output = t('онлайн: %members; %visitors.', array('%members' => format_plural($total_users, 'в настоящее время на сайте — 1', 'в настоящее время на сайте — @count'), '%visitors' => format_plural($guests->count, 'гостей — 1', 'гостей — @count')));
          }
          else {
           
$output = t('в настоящее время онлайн: %members; %visitors.', array('%members' => format_plural($total_users, 'пользователей — 1', 'пользователей — @count'), '%visitors' => format_plural($guests->count, 'гостей — 1', 'гостей — @count')));
          }
         
$max_users = variable_get('user_block_max_list_count', 10);
          if (
$total_users && $max_users) {
           
$items = array();
            while (
$max_users-- && $account = db_fetch_object($users)) {
             
$items[] = $account;
            }
           
$output .= theme('user_list', $items, t('Пользователи онлайн'));
          }
        }
        return
$output;
?>

Drupal 4.7.x

<?php
$number
= db_result(db_query('SELECT COUNT(uid) AS number FROM {users} WHERE status=1'));
        if (
user_access('access content')) {
         
$time_period = variable_get('user_block_seconds_online', 900);
         
$guests = db_fetch_object(db_query('SELECT COUNT(sid) AS count FROM {sessions} WHERE timestamp >= %d AND uid = 0', time() - $time_period));
         
$users = db_query('SELECT uid, name, access FROM {users} WHERE access >= %d AND uid != 0 ORDER BY access DESC', time() - $time_period);
         
$total_users = db_num_rows($users);
echo
"Из $number зарегистрированных пользователей ";
          if (
$total_users == 1 && $guests->count == 1) {
           
$output = t('%members и %visitors онлайн.', array('%members' => format_plural($total_users, 'в настоящее время 1 пользователь', 'в настоящее время %count пользователь(ей)'), '%visitors' => format_plural($guests->count, '1 guest', '%count guests')));
          }
          else {
           
$output = t('в настоящее время %members и %visitors онлайн.', array('%members' => format_plural($total_users, '1 пользователей', '%count пользователь(ей)'), '%visitors' => format_plural($guests->count, '1 гость', '%count гость(ей)')));
          }
         
$max_users = variable_get('user_block_max_list_count', 10);
          if (
$total_users && $max_users) {
           
$items = array();
            while (
$max_users-- && $account = db_fetch_object($users)) {
             
$items[] = $account;
            }
           
$output .= theme('user_list', $items, t('Пользователи онлайн'));
          }
        }
        return
$output;
?>

Comments

А можете написать код для шестой версии?

Post new comment

The content of this field is kept private and will not be shown publicly.
Image CAPTCHA
Copy the characters (respecting upper/lower case) from the image.