这可能非常简单,但我已经绕圈试图让它发挥作用。我的强项是HTML / CSS而不是PHP。
我有自定义的第三方组件,以便在发布广告的用户在线时显示。到目前为止,我还没能让它发挥作用。
我一直在将我从组件获取的用户ID传递给Joomla用户对象。
$user =& JFactory::getUser($var_from_component);
然后我尝试检查是否设置了guest标志,因为我知道如果用户登录它将为零但如果用户不是则为null。
if($user->guest==0) {
echo "User is online";
} else {
echo "User is offline";
}
我也试过三个等号,因为我想检查一下这个值实际设置为零而不是它是null,所以基本上我一直在搞乱这个方法的变化太久了。如果有人知道更好的检查方法,那么请说。我还尝试检查会话表中的userid,但我对mySQL查询并不精通。
提前致谢!
答案 0 :(得分:3)
您可以查询会话表以检查用户是否已登录 -
$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';
}
答案 1 :(得分:0)
试试这个,
您可以查看
$user = &JFactory::getUser($user_id);
//print_r($user);
if(isset($user->guest))
echo "Online";
else
echo "Offline";
希望这可以帮到你..