正如标题所说,我正在寻找一种解决方案来获取特定用户组的离线用户列表。有什么变通方法吗?
实际上,我正在定制一个模块,我需要在前端显示离线用户。如果有人能帮我一把,我将不胜感激。
提前感谢
发布于 2016-08-03 19:27:00
这是一个很好的问题。您可以运行以下查询:
SELECT * FROM `#__users` WHERE `lastVisitDate` < NOW() - INTERVAL 1 HOUR上面的查询假设一个多小时前登录的用户现在已注销。问题是,在这里你不能有100%的准确性,因为用户可以登录5分钟然后离开,而用户可以不间断地登录16小时。然而,上面的查询将产生良好的、近似的结果。您可以随时调整间隔时间(例如,将其更改为INTERVAL 2 HOUR)以满足您的需要。
发布于 2016-08-05 22:46:40
感谢您的关注,我的章鱼。
我最终通过以下函数做到了这一点:
public static function getOfflineUserNames($params)
{
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select ($db->quoteName('a.username'))
->from('#__users AS a');
$user = JFactory::getUser();
$query->join('LEFT', '#__session AS m ON m.username = a.username')
->where('m.username IS NULL');
$db->setQuery($query);
return (array) $db->loadObjectList();
}https://stackoverflow.com/questions/38659974
复制相似问题