Подскажите, как пользователям обычным (например все исключая роль админ и модератор) сделать так что бы они входили только с одного браузера, а то по 3-4 ника одинаковых светиться в присутствующих, ну или как нибудь объединять сесии... что ли
$users_online = db_query('
SELECT
u.uid,
u.name,
u.access
FROM
{users} u
WHERE
u.uid <> 0
AND
u.uid <> 1
AND
u.access > %d
AND
u.status = 1
ORDER BY u.access DESC', (time() - 900) );
Комментарии
А зачем выводите в списке присутствующих дубли??? Неужели сложно сгруппировать выборку по "uid" или указать "DISTINCT", или еще как-нибудь...
так это друпал сам выводит. блок из коробки вроде как.
Я так обычно делаю:
SELECT
u.uid,
u.name,
u.access
FROM
{users} u
WHERE
u.uid <> 0
AND
u.uid <> 1
AND
u.access > %d
AND
u.status = 1
ORDER BY u.access DESC',
(time() - 900)
);
спасибо.
И лучше еще кешировать это дело:
$now = time();
$expire = $cached ? $cached->expire : 0;
if ($expire > $now) {
return $cached->data;
}
else {
$users_online = db_query('
SELECT
u.uid,
u.name,
u.access
FROM
{users} u
WHERE
u.uid <> 0
AND
u.uid <> 1
AND
u.access > %d
AND
u.status = 1
ORDER BY u.access DESC',
($now - 900)
);
//...
// Оформляем полученные данные в нужном виде
//...
$output = 'Конечные темизированные данные';
//Кешируем на 2 минуты
cache_set('page:now_online', $output, 'cache_page', $now + 120);
return $output;
}