партнер компании 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
Ответить
Читают тему
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить картинки