<?
//Пусть для пользователей определено пользовательское свойство
// типа список с кодом UF_GENDER. Выведем отображаемое значение для
// текущего пользователя.
//Сначала получим значение пользовательского поля:
global $USER;
if(is_object($USER))
{
$rsUser = CUser::GetList($by, $order,
array(
"ID" => $USER->GetID(),
),
array(
"SELECT" => array(
"UF_GENDER",
),
)
);
if($arUser = $rsUser->Fetch())
{
$rsGender = CUserFieldEnum::GetList(array(), array(
"ID" => $arUser["UF_GENDER"],
));
if($arGender = $rsGender->GetNext())
echo $arGender["VALUE"];
}
}
?>
Есть 2 проблемы: 1) неавторизованным пользователям возвращает данные по админу, который который внёс правку. Хотя логично отдать пустоту. 2) если у пользователя не стоит "флаг" для пользовательского свойства, которое мы так пытаемся получить, то будет получено любое другое пользовательское свойство (по-моему, с наименьшим ID).
Как получить список из множественных свойств желательно с пустыми значениями, если для них не стоит флаг?