ユーザーIDのチェックを含む拡張機能を作成しています。基本的に、ここJFactory::getUser();
の例 2 のように、潜在的なユーザー名を実行します。私のコードは
$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 ループを介して実行されます)。
2 つの問題が発生しています。これは予想外のことです。
まず、名前が存在しない場合。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
誰かがこのコードに何か問題があると思いますか? またはJFactory::getUser()
、そのドキュメントが Joomla 2.5 用に作成されてから の標準が変更されたかどうかを知っていますか?