партнер компании 1с-битрикс
сайт фрилансера Сергея Эстрина
Войти как пользователь
Вы можете войти на сайт, если вы зарегистрированы на одном из этих сервисов:
Простой адаптивный форум - модуль для битрикс
Страницы: 1
Ответить
RSS
Отображение пользовательского Свойства-Таблица для объекта USER
 
Требуется пользовательское свойство-таблица для объекта USER. В админке добавил поле, настроил. Для тестового юзера задал значения.
Т.к. в битриксе до сих пор нет компонента вывода карточки юзера, рисуем сами:


Код
<?
if($_REQUEST["id"]) {     
   $rsUser = CUser::GetByID($_REQUEST["id"]);
   $arUser = $rsUser->Fetch();      
   if( is_array($arUser) ):?> 
тут выводим поля 
<? endif?>
 
когда я вожу нужное поле:
Код
         <? $GLOBALS["APPLICATION"]->IncludeComponent(
                           "grain:table.view",
                           "",
                           Array(
                           //  "SETTINGS" => $arResult["DISPLAY_PROPERTIES"]["PF_NAME"]["USER_TYPE_SETTINGS"],
                             "MULTIPLE" => "Y",
                             "VALUE" => $arUser["UF_NAME_TESSSST"],
                           ),
                           null,
                           array('HIDE_ICONS' => 'Y')
                        );  
                        
                  
            
            
            echo '<pre>'; print_r($arUser["UF_NAME_TESSSST"]); echo '</pre>'; ?> 
Сам компонент ничего не выводит, а print_r выводит, что у нас значения не массивы, а строки с сериализированными данныами.

Как вывести значения?
Очевидно, для значений надо применить unserialize. А откуда взять значения для SETTINGS?
 
Хан, используйте такой код:

Код
$USER_ID = 1;
$FIELD = "UF_MULTABLE";

$rsUserFields = $GLOBALS["USER_FIELD_MANAGER"]->GetUserFields("USER", $USER_ID); 
foreach ($rsUserFields as $FIELD_NAME => $arUserField) {
   if($arUserField["USER_TYPE_ID"] =="gtable") {
      if($arUserField["MULTIPLE"]=="Y" && is_array($arUserField["VALUE"])) {
         foreach($arUserField["VALUE"] as $index=>$value) {
            $rsUserFields[$FIELD_NAME]["VALUE"][$index] = unserialize($value);
         }
      } elseif($arUserField["MULTIPLE"]!="Y") {
         $rsUserFields[$FIELD_NAME]["VALUE"] = unserialize($arUserField["VALUE"]);
      }
   }
}


 $GLOBALS["APPLICATION"]->IncludeComponent(
    "grain:table.view",
   "",
    Array(
       "SETTINGS" => $rsUserFields[$FIELD]["SETTINGS"],
      "MULTIPLE" => $rsUserFields[$FIELD]["MULTIPLE"],
      "VALUE" => $rsUserFields[$FIELD]["VALUE"],
    ),
   null,
   array('HIDE_ICONS' => 'Y')

);   

Если получать значения через $GLOBALS["USER_FIELD_MANAGER"], то настройки таблицы уже находятся в ключе SETTINGS, а они нужны для постороения таблицы.
Страницы: 1
Ответить
Читают тему (гостей: 1)
Форма ответов
Текст сообщения*
Ничего не найдено
Загрузить картинки
Отправить Отменить
 
Главная   ·   Модули для 1С-Битрикс   ·   Типовые услуги   ·   Форум   ·   Блог   ·   Контакты
Рейтинг@Mail.ru