0

ユーザー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 つの問題が発生しています。これは予想外のことです。

  1. まず、名前が存在しない場合。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
  1. 次に、ユーザーがログアウトしている場合、名前が有効かどうかにかかわらず、Joomla は$user_id->id0 であると判断します。regardless of the status of the current user

誰かがこのコードに何か問題があると思いますか? またはJFactory::getUser()、そのドキュメントが Joomla 2.5 用に作成されてから の標準が変更されたかどうかを知っていますか?

4

2 に答える 2