Поддержка серверов

CUserTypeManager::getUserFieldsWithReadyData: метод Битрикс

Постоянная ссылка: http://bxapi.ru/src/?id=168301

<?php 
//    /bitrix/modules/main/classes/general/usertype.phpCUserTypeManager::getUserFieldsWithReadyData()
//    1147:

    
function getUserFieldsWithReadyData($entity_id$readyData$LANG false$user_id false$primaryIdName 'VALUE_ID')
    {
        if (
$readyData === null)
        {
            return 
$this->GetUserFields($entity_idnull$LANG$user_id);
        }

        
$entity_id preg_replace("/[^0-9A-Z_]+/"""$entity_id);
        
$cacheId $entity_id "." $LANG '.' . (int) $user_id;

        
//global $DB;

        
$result = array();
        if(!
array_key_exists($cacheId$this->arFieldsCache))
        {
            
$arFilter = array("ENTITY_ID"=>$entity_id);
            if(
$LANG)
                
$arFilter["LANG"]=$LANG;

            
$rs call_user_func_array(array('CUserTypeEntity''GetList'), array(array(), $arFilter));
            while(
$arUserField $rs->Fetch())
            {
                if(
$arType $this->GetUserType($arUserField["USER_TYPE_ID"]))
                {
                    if(
                        
$user_id !== 0
                        
&& is_callable(array($arType["CLASS_NAME"], "checkpermission"))
                    )
                    {
                        if(!
call_user_func_array(array($arType["CLASS_NAME"], "checkpermission"), array($arUserField$user_id)))
                            continue;
                    }
                    
$arUserField["USER_TYPE"] = $arType;
                    
$arUserField["VALUE"] = false;
                    if(!
is_array($arUserField["SETTINGS"]) || empty($arUserField["SETTINGS"]))
                        
$arUserField["SETTINGS"] = $this->PrepareSettings(0$arUserField);
                    
$result[$arUserField["FIELD_NAME"]] = $arUserField;
                }
            }
            
$this->arFieldsCache[$cacheId] = $result;
        }
        else
            
$result $this->arFieldsCache[$cacheId];

        foreach (
$readyData as $key => $value)
        {
            if(
array_key_exists($key$result))
            {
                if(
$result[$key]["MULTIPLE"]=="Y" && !is_array($value))
                {
                    
$value unserialize($value);
                }

                
$result[$key]["VALUE"] = $this->OnAfterFetch($result[$key], $value);
                
$result[$key]["ENTITY_VALUE_ID"] = $readyData[$primaryIdName];
            }
        }

        return 
$result;
    }

Блог разработчика

9 Августа 2016 ResizeImageGet и простой водяной знак налету

Сегодня поговорим о том как проще всего воткнуть водяной знак на картинки в Битрикс. Например, на все изображения каталога.

21 Июля 2016 Добавление вкладки в CRM коробки Битрикс24

В этом посте я покажу, как легко и просто добавить вкладку в сущность CRM. И не просто добавить, а вывести там свой контент.

21 Июля 2016 Как просто обращаться из коробки Битрикс24 на сайт на базе Битрикс

К примеру вам хочется внутренним скриптом дернуть с сайта-магазина информацию, которая там, в свою очередь, закрыта некоторыми правами. Например, админскими. Можно конечно мутить свой REST, или иной формат общения, но проще всего воспользоваться штатным инструментом:

Текст сообщения*
Загрузить изображение