tomskafo,
706536, парни, у вас реально проблемы с абстрактным мышлением....
Расширение "тупое" до невозможности:
2 основных запроса:
Код: Выделить всё
SELECT COUNT(DISTINCT session_ip) as num_guests_24
FROM ' . SESSIONS_TABLE . '
WHERE session_user_id = ' . ANONYMOUS . '
AND session_time >= ' . ($interval - ((int) ($interval % 60)));
считает кол-во уникальных ip адресов для гостей, сессия которого началась позже чем примерно 24 часа назад от текущего момента - итог выводится в кол-во гостей за последние 24 часа. Результат запроса кешируется на 5 минут.
Код: Выделить всё
$sql_ary = array(
'SELECT' => 'u.user_id, u.user_colour, u.username, u.user_type, u.user_lastvisit, u.user_allow_viewonline, MAX(s.session_time) as session_time, s.session_viewonline',
'FROM' => array(USERS_TABLE => 'u'),
'LEFT_JOIN' => array(
array(
'FROM' => array(SESSIONS_TABLE => 's'),
'ON' => 's.session_user_id = u.user_id',
),
),
'WHERE' => 'u.user_lastvisit > ' . (int) $interval . ' OR s.session_user_id <> ' . ANONYMOUS,
'GROUP_BY' => 'u.user_id, s.session_viewonline',
'ORDER_BY' => 'u.username_clean',
);
Запрос возвращает массив пользователей, последнее посещение форума которыми было не раньше 24 часов назад или это боты. Этот массив в дальнейшем подвергается сортировке и дополнительной проверки по нескольким критериям - показывать их в скрытых или в открытых пользователях. Данные запроса кешируются на 5 минут.
Всеееееее..... Ничего ниоткуда не вычитает....
Отправлено спустя 5 минут 11 секунд:
706536 писал(а): ↑29.01.2019 18:03
// cache this data for 5 minutes, this improves performance
$this->cache->put('_24hour_users', $active_users, 300);
По ходу надо просто убрать 300 на 0
Удачи, запасаюсь попкорном и иду смотреть через сколько времени твой форум начнет тупить при твоей посещаемости