Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Получить значения дополнительных пользовательских полей

00 голосов
4
Добрый день! Мне нужно написать гаджет, который бы выводил для пользователя социальной сети дополнительные пользовательские поля. Я достаю свойства для текущего пользователя по id. А как мне получить id пользователя, на страницу, которого я зашла, или как по другому получить свойства пользователя. Подскажите, пожалуйста.

Код
$arFilter = array("ID" => $USER->GetID());
$arParams["SELECT"] = array("UF_NAME","UF_RACE","UF_HOMEWORLD","UF_EXT_DATA","UF_AVATAR");
$arRes = CUser::GetList($by,$desc,$arFilter,$arParams);
спросил 25 Апр, 13 от Victoria1 (200 баллов)

4 Ответы

00 голосов
CUser::GetList
Код
CUser::GetList(
 string &by = "timestamp_x",
 string &order = "desc",
 array filter = array(),
 array arParams = array()
)

Для получения полей необходимо использовать 4-ый параметр - arParams

Например для нескольких полей с определенными именами:
Код
$arParams["SELECT"] = array( "UF_MY_PARAM", "UF_MY_PARAM2", "UF_MY_PARAM3" );

Для всех полей начинающихся с "UF_"
Код
$arParams["SELECT"] = array( "UF_*" );
ответил 25 Апр, 13 от LEDOKOL (740 баллов)
00 голосов
MyIE,  спасибо. Но у меня и до этого получалось получить поля.
Я, вроде, старалась понятно изложить проблему.
У меня получается, что я захожу на свой профиль в соц. сети. И мне отображаются в гаджете мои данные, взятые из дополнит. полей. Но когда я перехожу на страницу другого пользователя, мне в гаджете отображаются опять мои данные, а мне надо видеть данные того, другого пользователя. Я достаю данные кодом приведенным в 1 сообщении. И я понимаю, что строчка

Код
 $arFilter = array("ID" => $USER->GetID()); 


как раз и выводит данные для текущего, авторизированного пользователя. Но как можно получить данные других пользователей?
ответил 25 Апр, 13 от Victoria1 (200 баллов)
00 голосов
Не работал с соц. сетью, но вероятно нужно передать в фильтер не свой UserID, а ID пользователя, на странице которого вы находитесь.
Скорее всего у вас он есть в url.
-----------------------------------------------------------------------------
CUser::GetID - Возвращает ID текущего авторизованного пользователя.
ответил 21 Июнь, 13 от LEDOKOL (740 баллов)
00 голосов
Та я тоже  думала  о том, чтоб вытащить откуда-то из ссылок. Просто надеялась, может как-то по другому можно.
ответил 25 Сен, 13 от Victoria1 (200 баллов)

Похожие вопросы

0 голосов
1 ответ
0 голосов
2 ответов
спросил 21 Апр, 14 от Klipa (100 баллов)
0 голосов
3 ответов
спросил 21 Фев, 14 от IgoRek (100 баллов)