我正在創建一個涉及檢查用戶ID的擴展。基本上我通過JFactory::getUser();
運行一個潛在的用戶名,如例2 here。我的代碼是JFactory :: getUser()給出奇數結果
$user_id=&JFactory::getUser($name);
if($user_id->id==0) { //Line 79
$profile_link = $name;
} else {
$profile_link = '<a href="'.JRoute::_('index.php?option=com_comprofiler&task=userProfile&user='.$user_id->id).'">' . $name . '</a>';
}
echo $profile_link;
只是澄清我剛剛選擇了代碼的相關部分。正如你可以看到,如果用戶名是一個有效的用戶,然後我鏈接到他們的社區生成器配置文件。否則,我只是將名稱回顯出來(這是通過名稱列表的foreach循環運行的)。
我遇到了兩個問題 - 這似乎並不是預期的。
首先如果名稱不存在。 Joomla在系統消息區發佈錯誤信息。
JUser: :_load: User xxxx does not exist
還有的一個PHP錯誤(注意我已經指出線79在上面的代碼)
Notice: Trying to get property of non-object in MODULEROOT/tmpl/default.php on line 79
- 其次,如果用戶退出然後Joomla認爲
$user_id->id
是否爲0.儘管文檔中明確指出應該運行regardless of the status of the current user
有人可以看到這個代碼有什麼問題嗎?或者知道自從該文檔爲Joomla 2.5編寫以來JFactory::getUser()
的標準是否已經改變?
如果可能的話,寧願使用原生Joomla命令 - 儘管你提出了一個非常有效的觀點,並且如果我找不到爲什麼'JFactory :: getUser();'失敗,可能會恢復到原來的狀態。謝謝! –
我知道使用本機功能是好的,但在這種情況下,上述方法將幫助你出 – Techie
因爲沒有其他任何事情在這個問題上接受它。你的答案肯定是有效的:)在http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=29986這裏提交一個Bug報告,以獲得關於預期結果應該是什麼的一些澄清! –