4

以下のコードでは、ユーザーのJoomlaプロファイルのプロファイルページにユーザーの名前を表示できます。テンプレートをオーバーライドして、必要なルックアンドフィールを取得したことを前提としています。

$user =& JFactory::getUser();

if (!$user->guest) {
  echo 'You are logged in as:<br />';
  echo 'Real name: ' . $user->name . '';
}

私の問題は、ユーザーが自分のプロファイルを更新できるようにすることです。彼が自分の名前を更新した後、データベースは正しく更新されますが、プロファイルページに更新された名前が表示されません。

Joomlaのドキュメントを調べてみると、ユーザーデータがセッション(JFactory :: getUser())に保存されていることがわかりました。print_r($_SESSION)ユーザーデータオブジェクトが表示されれば。また、ログアウトしてから再度ログインすると、更新された名前がプロファイルページに表示されます。

データが更新された後、プロファイルページに更新の詳細を表示するにはどうすればよいですか?手動で更新するのではなく、Joomlaセッションのセッションデータを更新する方法はありますか?

4

3 に答える 3

7

JSession を使用して、ユーザーの現在のセッションに新しいデータを設定する必要があります

        $user = JFactory::getUser();
        $session = JFactory::getSession();
        $session->set('user', new JUser($user->id));
        //new data for your user after the update
        $user = JFactory::getUser();
        print_r($user);
于 2013-02-22T16:41:52.727 に答える