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

Тема в разделе "Программирование", создана пользователем magistr_yoda, 27.07.2010.

  1. Offline

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

    Регистрация:
    20.05.2007
    Сообщения:
    166
    Симпатии:
    0
    Пол:
    Мужской
    Нужно получить имя пользователя(не себя) по id, делаю так -
    $user =& JFactory::getUser($id); // id - другого пользователя
    $user->username;

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

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

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Вы программированием занимаетесь или гаданием? :)
    Это ведь можно проверить.
    Может просто библиотека не подключается для неавторизованных?

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

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

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

    Регистрация:
    20.05.2007
    Сообщения:
    166
    Симпатии:
    0
    Пол:
    Мужской
    Проверил, почему - то когда я не авторизован на сайте, то при помощи того кода, который я написал выше, полям объекта пользователя присваивается null - object(JUser)#12 (19) { ["id"]=> int(0) ["name"]=> NULL ["username"]=> NULL ["email"]=> NULL...

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

    Те хелпы читал - там написанно про получение данных себя - т.е. залогиненного человека, а мне надо другое.
     
    Последнее редактирование модератором: 05.04.2014
  5. Offline

    botanist специалист

    Регистрация:
    15.02.2009
    Сообщения:
    461
    Симпатии:
    49
    Пол:
    Мужской
    Все прекрасно работает. Если у вас ["id"]=> int(0), то чего получить то хотели.
    Код (PHP):
    1. $user =& JFactory::getUser(62);
    2. var_dump ($user);

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

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Там такого не написано :)

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

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

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

    Регистрация:
    20.05.2007
    Сообщения:
    166
    Симпатии:
    0
    Пол:
    Мужской
    Да, вы правы, работает, наверно что то не то подставлял вместо $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 ?
    Возможно записей будет много и к ним часто будут обращаться.
     

Поделиться этой страницей

Загрузка...