Может кто-то переделывал код для 6 го друпала для вывода он лайн зарегистрированных юзеров в блоке ДЛЯ 7 друпала?
код ниже..
if (user_access('access content')) {
$max_users = 1000; // Максимальное количество отображаемых пользователей
$output = '';
$interval = time() - variable_get('user_block_seconds_online', 900);
$authenticated_users = db_query('SELECT DISTINCT u.uid, u.name, s.timestamp FROM {users} u INNER JOIN {sessions} s ON u.uid = s.uid WHERE s.timestamp >= %d AND s.uid > 0 ORDER BY s.timestamp DESC', $interval);
$authenticated_count = 0;
$items = array();
while ($account = db_fetch_object($authenticated_users)) {
if (!isset($items[$account->uid])) {
if ($max_users > 0) {
$items[$account->uid] = $account;
$max_users--;
}
$authenticated_count++;
}
}
if ($authenticated_count == 1) {
$output = t('Сейчас на сайте %members.', array('%members' => format_plural($authenticated_count, '1 user', 'count users')));
}
else {
$output = t('Сейчас на сайте %members.', array('%members' => format_plural($authenticated_count, '1 user', 'count users')));
}
// Display a list of currently online users.
$max_users = variable_get('user_block_max_list_count', 10);
if ($authenticated_count && $max_users) {
$output .= '<div id="my_block_users_online">'."\n";
$i = 0;
foreach ($items as $item) {
if ($i != 0) {$output .= ', ';}
$output .= theme('username', $item);
$i++;
}
$output .= '.';
$output .= '</div>'."\n";
}
// Максимальное нашествие online пользователей
$output .= '<div id="my_block_users_maximum">'."\n";
$umax = variable_get('user_online_max', array('count' => 0, 'date' => '0'));
if ($umax['count'] == 0 || $umax['count'] <= ($authenticated_count)) {
$umax['count'] = $authenticated_count;
$umax['date'] = time();
variable_set('user_online_max', $umax);
}
$output .= 'Пик посещаемости <strong>'.$umax['count'].'</strong>, это было <span class="date">'.format_date($umax['date'], 'custom', 'd.m.Y в H:i', NULL).'</span>.';
$output .= '</div>'."\n";
// Вывод блока
print $output;
}
?>
Комментарии
Views же, зачем сниппеты? От них производительность падает
количество и через запятую ники ??? пик посещаемости и дату ???
где-то видел стандартную вьху 'ху из онлайн', не вспомню где, но есть такая точно, поищите
вроде и самому тож можно, представление Пользователи, фильтр последнее посещение, в настройках Смещение от текущего времени -15 minutes
количество агрегацией, пик посещаемости хз
ну вот. без снипета никуда. просто вывести это понятно как...
нужно именно этот код переделать для д7...
Я взял код отсюда. С учетом комментариев от Dmitry - работает в 7-ке.
Даже модуль сделал (не полноценный, а так - зачатки) - показывает пользователей, гостей и роботов.
Пика посещаемости нет - только кто онлайн.
ну гости не нужны и роботы... только юзеры... зарегенный и пик - это самое главное... с датой.
а у меня выдает ошибку
Recoverable fatal error: Argument 2 passed to db_query() must be an array, integer given, called in /var/www/proff/data/www/modules/php/php.module(80) : eval()'d code on line 13 and defined в функции db_query() (строка 2313 в файле /var/www/proff/data/www/includes/database/database.inc).