Новости Joomla

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

Roman Petrenko

  • Захожу иногда
  • 438
  • 61 / 0
  • Дизайн без секретов
Здравствуйте.

Использую Joomla 1.6.3

Возникла необходимость использовать информацию из профиля пользователя для связи с другой базой данных.
Есть интересная функция JUserHelper::getProfile(), которая вытягивает всю информацию из профиля пользователя. Насколько понял ID пользователя можно прямо задавать в функции или она сама определит по залогиненному пользователю. Пытаюсь использовать так:
Код
jimport( 'joomla.user.helper' );
$profile =JUserHelper::getProfile();
На этом этапе все работает вроде-бы. Но вот каких-либо дальнейших конструкций типа
Код
echo $profile->get('profile.favoritebook');
echo $profile->profile.favoritebook;
не нахожу нигде в документации и как работать с вытянутой информацией не понятно.

Кто знает подскажите, пожалуйста куда копать?
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
А по моему JUserHelper::getProfile() возвращает уже готовый объект и данные сразу будут доступны через $profile->prepertyname.

UPDATE:
Я не прав. Чего-то JUserHelper::getProfile() возвращает пустой объект...
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Можно брать напрямую данные из БД и работай с ними
Код
$user = JFactory::getUser();
$db = JFactory::getDbo();
$db->setQuery(
' SELECT profile_key, profile_value FROM #__user_profiles' .
' WHERE user_id = '. (int) $user->id." AND profile_key LIKE 'profile.%'" .
' ORDER BY ordering');
$results = $db->loadRowList();
var_dump($results);

UPDATE:
Я не прав. Чего-то JUserHelper::getProfile() возвращает пустой объект...
а с чего он будет возвращать не пустой объект?
Код
JUserHelper::getProfile($userId = 0)
:)
« Последнее редактирование: 30.05.2011, 15:01:41 от SmokerMan »
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
а с чего он будет возвращать не пустой объект?
Код
JUserHelper::getProfile($userId = 0)
:)
Не подкалывай ;) Если юзер залогинен, то нет:

Код
if ($userId == 0) {
$user = JFactory::getUser();
$userId = $user->id;
}
else {
$user = JFactory::getUser((int) $userId);
}
:P
*

Roman Petrenko

  • Захожу иногда
  • 438
  • 61 / 0
  • Дизайн без секретов
Оказалось эта функция еще не доработана. Действительно обошелся прямым запросом

Код
$dba = &JFactory::getDBO();
$dba->setQuery(
'SELECT profile_value FROM #__user_profiles' .
' WHERE user_id = '.(int) $usid." AND profile_key LIKE 'profile.favoritebook'" .
' ORDER BY ordering'
);
echo $dba->loadResult();

Немного другой, чем предложил SmokerMan, но тоже работает.

Хотя, конечно, хотелось бы использовать специально предназначенную функцию. ^-^
*

SmokerMan

  • Гуру
  • 5291
  • 720 / 26
Не подкалывай ;) Если юзер залогинен, то нет:
ну видимо да, сам метод не смотрел, глянул только на название :)
*

b2z

  • Глобальный модератор
  • 7288
  • 778 / 0
  • Разраблю понемногу
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как получить название статьи в методе onContentPrepare?

Автор websiller

Ответов: 8
Просмотров: 1515
Последний ответ 16.06.2015, 18:49:34
от websiller
[Решено] Программная регистрация пользователя во внешней бд

Автор DimkaJack

Ответов: 8
Просмотров: 2109
Последний ответ 06.08.2014, 18:32:39
от DimkaJack
Как в XML Manifest files получить список всех пунктов меню ?

Автор mainet

Ответов: 6
Просмотров: 1868
Последний ответ 08.04.2014, 13:49:24
от fsv
Как в плагине получить url страницы ?

Автор mainet

Ответов: 1
Просмотров: 1200
Последний ответ 27.10.2013, 18:43:03
от Aleks.Denezh
Как получить вывод HTML-кода сайта до вывода в браузер?

Автор mailambrella

Ответов: 2
Просмотров: 2133
Последний ответ 25.05.2013, 19:32:51
от Fedor Vlasenko