Как по id(не своему) получить имя пользователя

Discussion in 'Программирование' started by magistr_yoda, Jul 27, 2010.

  1. Offline

    magistr_yoda Недавно здесь

    Joined:
    May 20, 2007
    Messages:
    166
    Likes Received:
    0
    Gender:
    Male
    Нужно получить имя пользователя(не себя) по id, делаю так -
    $user =& JFactory::getUser($id); // id - другого пользователя
    $user->username;

    - но когда я сам не залогинен на сайте, это не работает, наверно не создан объект user.

    Как можно получать по id пользователей, их имена, даже если я сам не залогинен на сайте ?
     
  2.  
  3. OlegM
    Offline

    OlegM Russian Joomla! Team Staff Member

    Joined:
    Apr 12, 2007
    Messages:
    4,310
    Likes Received:
    375
    Gender:
    Male
    Вы программированием занимаетесь или гаданием? :)
    Это ведь можно проверить.
    Может просто библиотека не подключается для неавторизованных?

    Странная формулировка. Причем здесь собственная авторизация?

    http://www.joomla-docs.ru/Объект_JUser_в_Joomla_1.5
    http://docs.joomla.org/JFactory/getUser
     
  4. Offline

    magistr_yoda Недавно здесь

    Joined:
    May 20, 2007
    Messages:
    166
    Likes Received:
    0
    Gender:
    Male
    Проверил, почему - то когда я не авторизован на сайте, то при помощи того кода, который я написал выше, полям объекта пользователя присваивается null - object(JUser)#12 (19) { ["id"]=> int(0) ["name"]=> NULL ["username"]=> NULL ["email"]=> NULL...

    Собственная авторизация, при том, что если я не авторизован, то не получается по id других пользователей установить их имена.

    Те хелпы читал - там написанно про получение данных себя - т.е. залогиненного человека, а мне надо другое.
     
    Last edited by a moderator: Apr 5, 2014
  5. Offline

    botanist Активист => Cпециалист <=

    Joined:
    Feb 15, 2009
    Messages:
    461
    Likes Received:
    49
    Gender:
    Male
    Все прекрасно работает. Если у вас ["id"]=> int(0), то чего получить то хотели.
    Код (PHP):
    1. $user =& JFactory::getUser(62);
    2. var_dump ($user);

    Получаем объект суперадмина со всеми потрохами.
     
  6. OlegM
    Offline

    OlegM Russian Joomla! Team Staff Member

    Joined:
    Apr 12, 2007
    Messages:
    4,310
    Likes Received:
    375
    Gender:
    Male
    Там такого не написано :)

    getUser( $id ), где $id - ID юзера, данные которого надо получить. Может ты свой ID сюда подставляешь, поэтому и не можешь неавторизованным получить данные.

    PS: botanist опередил
     
  7. Offline

    magistr_yoda Недавно здесь

    Joined:
    May 20, 2007
    Messages:
    166
    Likes Received:
    0
    Gender:
    Male
    Да, вы правы, работает, наверно что то не то подставлял вместо $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 ?
    Возможно записей будет много и к ним часто будут обращаться.
     

Share This Page

Loading...