0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 214 Просмотров
*

Nickolay

  • Новичок
  • 10
  • 0 / 0
Добрый день!
Подскажите, как решить такую проблему?
Запрашиваю пользователя так:
$user = JFactory::getUser($login);
$aaa = $user->id; // Joomla ID
$bbb = $user->email;   // Email
$ccc = $user->name;
Все хорошо, но когда логин у пользователя чисто числовой (123456) он воспринимается как id пользователя и дает ошибку:
JUser: :_load: Не удалось загрузить пользователя с ID: 123456
Пробовал и так написать:
$user = JFactory::getUser((string)$login); - не помогает(
Как правильно запросить пользователя по числовому логину?
*

beliyadm

  • Легенда
  • 8218
  • 1590 / 63
  • Севастополь == Россия
а зачем запрашивать пользователя по логину, когда логично запрашивать по ID и получать логин?
Код: php
$user = JFactory::getUser(99);

Вообще если честно не помню в API движка, чтобы можно было получать объект getUser через логин
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

Nickolay

  • Новичок
  • 10
  • 0 / 0
Ну прочитал, что если передается строка - то воспринимается как логин, если целое число - то id
Так и срабатывает, но когда логин число - проблема
*

beliyadm

  • Легенда
  • 8218
  • 1590 / 63
  • Севастополь == Россия
Ну прочитал, что если передается строка - то воспринимается как логин, если целое число - то id
А где, если не секрет, такое прочитали? Вот же официальная статья, только про ID https://docs.joomla.org/Accessing_the_current_user_object
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

Nickolay

  • Новичок
  • 10
  • 0 / 0
в интернете прочитал))) у кого-то
чисто логически, должна быть такая возможность по логину понять хотя бы id
*

Nickolay

  • Новичок
  • 10
  • 0 / 0
Если JFactory::getUser не позволяет "официально" и правильно так сделать, то как то в базе пользователей нужно искать по логину, я так понимаю. Может быть просто есть, что-то стандартное, позволяющее по логину определить id.
*

beliyadm

  • Легенда
  • 8218
  • 1590 / 63
  • Севастополь == Россия
Если JFactory::getUser не позволяет "официально" и правильно так сделать, то как то в базе пользователей нужно искать по логину, я так понимаю. Может быть просто есть, что-то стандартное, позволяющее по логину определить id.
Вы опишите задачу полностью, что вы собираетесь делать. Самый распространенный способ выбрать данные пользователя - при знании его ID.
Найти юзера по логину можно простым запросом к БД
Код: sql
select * from #__users where username = 'вася'
Ну или через name, смотря как искать - по имени или логину
Все истины, которые я хочу вам изложить, — бесстыдная ложь.
Записки нетрезвого кодера || -=Joomla FAQ=- || -=все плохо=- || skype: beliyadm_pb
*

Nickolay

  • Новичок
  • 10
  • 0 / 0
На сайте у меня реферальная система, где партнеры - пользователи Joomla, username - партнерский идентификатор.
Нужно при переходе посетителя с идентификатором username найти все параметры партнера в его пролфиле Joomla, ну и в расширенном профиле.
Все это сделано и работает, но с описанной проблемкой.
Буду очень благодарен (в оговоренных размерах))) если поможете решить эту задачу.
По сути нужно по username найти id Joomla пользователя.
« Последнее редактирование: 04.10.2016, 15:30:09 от Nickolay »
*

Nickolay

  • Новичок
  • 10
  • 0 / 0
для моего уровня понимания нужно как-то так:
$iduser = что-то...
*

SmokerMan

  • Гуру
  • 5293
  • 719 / 26
Буду очень благодарен (в оговоренных размерах))) если поможете решить эту задачу.
уже дали выше пример, что еще нужно не совсем понятно)
можно воспользоваться хелпером, который делает то же самое
Код
$user_id = JUserHelper::getUserId($username);
*

Nickolay

  • Новичок
  • 10
  • 0 / 0
Re: Пользователь по логину в виде числа
« Ответ #10 : 04.10.2016, 13:33:56 »
Вот теперь понятно)
сейчас попробую
*

Nickolay

  • Новичок
  • 10
  • 0 / 0
Re: Пользователь по логину в виде числа
« Ответ #11 : 04.10.2016, 13:40:05 »
Спасибо большое!
Теперь все хорошо, работает
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться