• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/livefeed/provider.php
  • Класс: BitrixSocialnetworkLivefeedProvider
  • Вызов: Provider::getEntityAttachedDiskObjects
protected function getEntityAttachedDiskObjects(array $params = [])
{
	global $USER_FIELD_MANAGER;

	$result = [];

	$userFieldEntity = (string)($params['userFieldEntity'] ?? '');
	$userFieldEntityId = $this->entityId;
	$userFieldCode = (string)($params['userFieldCode'] ?? '');
	$clone = (boolean)($params['clone'] ?? false);

	if (
		$userFieldEntity === ''
		|| $userFieldCode === ''
		|| $userFieldEntityId <= 0
	)
	{
		return $result;
	}

	static $cache = [];

	$cacheKey = $userFieldEntity . $userFieldEntityId . $clone;

	if (isset($cache[$cacheKey]))
	{
		$result = $cache[$cacheKey];
	}
	else
	{
		$entityUF = $USER_FIELD_MANAGER->getUserFields($userFieldEntity, $userFieldEntityId, LANGUAGE_ID);
		if (
			!empty($entityUF[$userFieldCode])
			&& !empty($entityUF[$userFieldCode]['VALUE'])
			&& is_array($entityUF[$userFieldCode]['VALUE'])
		)
		{
			if ($clone)
			{
				$this->attachedDiskObjectsCloned = self::cloneUfValues($entityUF[$userFieldCode]['VALUE']);
				$result = $cache[$cacheKey] = array_values($this->attachedDiskObjectsCloned);
			}
			else
			{
				$result = $cache[$cacheKey] = $entityUF[$userFieldCode]['VALUE'];
			}
		}
	}

	if (!is_array($result))
	{
		$result = [];
	}

	return $result;
}