这可能真的很简单,但我一直在努力让它发挥作用。我的强项是HTML/CSS而不是PHP。
我有一个第三方组件,我正在定制,以便在发布广告的用户在线时显示。到目前为止,我还没能让它发挥作用。
我一直在将从组件中获得的用户ID传递给Joomla用户对象。
$user =& JFactory::getUser($var_from_component);
然后,我尝试检查是否设置了guest标志,因为我知道,如果用户登录,它将为零,但如果用户未登录,则为空。
if($user->guest==0) {
echo "User is online";
} else {
echo "User is offline";
}
我也尝试过使用三个等号,因为我想检查值是否真的设置为零,而不是为零,所以基本上我已经在这个方法的变体上折腾了太久。如果有人知道更好的检查方法,请说。我还尝试检查会话表中的userid,但我对mySQL查询不太了解。
提前感谢!
您可以查询会话表来检查用户是否登录-
$db =& JFactory::getDBO();
$query = 'SELECT COUNT(userid) FROM #__session AS s WHERE s.userid = '.(int)$userid;
$db->setQuery($query);
$loggedin = $db->loadResult();
if($loggedin){
//echo 'User is logged in';
}
试试这个,
你可以像一样检查
$user = &JFactory::getUser($user_id);
//print_r($user);
if(isset($user->guest))
echo "Online";
else
echo "Offline";
希望这能对你有所帮助。。