Предположим, что вы хотите обновить какие-то данные пользователя, сохранить их в базу и сразу же отобразить их пользователю. После обновления данных вы получаете объект пользователя JUser через JFactory::getUser(), но данные в объекте по прежнему старые и обновляютя они только после того, как пользователь пройдет повторную авторизацию. Как же обновить эти данные, не заставляя пользователя выходить/входить на сайт заново?
Загвоздка в том, что при вызове JFactory::getUser() объект JUser берется из сессии, поэтому для его обновления вы должны получить объект из сессии, обновить необходимые свойства и записать объект обратно в сессию:
// Получем объект пользователя из сессии $session = JFactory::getSession(); $tmpUser = $session->get('user'); // Обновляем необходимые данные $tmpUser->name = $data['name']; $tmpUser->email = $data['email']; // Обновляем объект пользователя в сессии $session->set('user', $tmpUser);
Удачной разработки!