Проблема следующая. Для каждой группы пользователя имеется точно такой же инфоблок, где при регистрации пользователя создается элемент с именем, фамилией и отчеством пользователя, а так же заполняются поля свойств элемента. Есть поле - "Привязка к пользователю". По этому полю я выбираю функцией все значения свойств инфоблока. После регистрации пользователь попадает в ЛК, где выводятся его данные из элемента его ИБ. Проблема заключается в том, что я могу просмотреть свойства ТОЛЬКО свои и других админов, но свойства зарегистрированного пользователя ему не выводятся! Прилагаю код функции, которая выводит данные о пользователе. Помогите пожалуйста, уже очень много времени потратил на решение этой проблемы. Сразу говорю, доступ к инфоблокам здесь ни при чем, все перепробовал. Грешу только на то, что элементы администраторов я привязывал как "Текущий пользователь", а все остальные автоматом ставятся $USER->GetID();. Но не думаю, что дело в этом.
Спасибо!
Код |
---|
function ShowUserFields($UserID)
{
CModule::IncludeModule("iblock");
$arResult = array();
$arSelect = Array("ID", "NAME", "IBLOCK_ID", "DATE_ACTIVE_FROM", "IBLOCK_TYPE", "IBLOCK_NAME");
$lElement = CIBlockElement::GetList(array(), array("PROPERTY_USER_ID" => $UserID, "IBLOCK_TYPE_ID" => "users_groups"), false, false, $arSelect);
while($row = $lElement->GetNextElement())
{
$arUser = $row->GetFields();
$arResult["USER_GROUP"]["NAME"] = "Группа пользователя";
$arResult["USER_GROUP"]["VALUE"] = $arUser["IBLOCK_NAME"];
$arResult["USER_NAME"]["NAME"] = "Пользователь";
$arResult["USER_NAME"]["VALUE"] = $arUser["NAME"];
$arProps = $row->GetProperties();
foreach($arProps as $k => $v)
{
$arResult[$k]["NAME"] = $v["NAME"];
$arResult[$k]["VALUE"] = empty($v["VALUE"]) ? 'Пустое поле' : $v["VALUE"];
}
}
return $arResult;
} |
Вот так мы вызываем функцию :
Код |
---|
ShowUserFields($USER->GetID()); |