Нужно получить имя пользователя(не себя) по id, делаю так - $user =& JFactory::getUser($id); // id - другого пользователя $user->username; - но когда я сам не залогинен на сайте, это не работает, наверно не создан объект user. Как можно получать по id пользователей, их имена, даже если я сам не залогинен на сайте ?
Вы программированием занимаетесь или гаданием? Это ведь можно проверить. Может просто библиотека не подключается для неавторизованных? Странная формулировка. Причем здесь собственная авторизация? http://www.joomla-docs.ru/Объект_JUser_в_Joomla_1.5 http://docs.joomla.org/JFactory/getUser
Проверил, почему - то когда я не авторизован на сайте, то при помощи того кода, который я написал выше, полям объекта пользователя присваивается null - object(JUser)#12 (19) { ["id"]=> int(0) ["name"]=> NULL ["username"]=> NULL ["email"]=> NULL... Собственная авторизация, при том, что если я не авторизован, то не получается по id других пользователей установить их имена. Те хелпы читал - там написанно про получение данных себя - т.е. залогиненного человека, а мне надо другое.
Все прекрасно работает. Если у вас ["id"]=> int(0), то чего получить то хотели. Код (PHP): $user =& JFactory::getUser(62); var_dump ($user); Получаем объект суперадмина со всеми потрохами.
Там такого не написано getUser( $id ), где $id - ID юзера, данные которого надо получить. Может ты свой ID сюда подставляешь, поэтому и не можешь неавторизованным получить данные. PS: botanist опередил
Да, вы правы, работает, наверно что то не то подставлял вместо $id - блин я уже переписал код, сделал связку в селекте, с таблицей #__users - и оттуда сразу выкачиваю username - $query = 'SELECT u.username, dt.id, user_owner, level FROM #__data_table dt, #__users u WHERE published = 1 AND user_owner= u.id ORDER BY id DESC'; Интересно, а как быстрее будет работать и меньше нагружать сервер - связкой в селекте или вызывать каждый раз объект JUser ? Возможно записей будет много и к ним часто будут обращаться.