CCrmRestProxyBase::tryExternalizeProductFileField

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. CCrmRestProxyBase
  4. tryExternalizeProductFileField
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/restservice.php
  • Класс: \CCrmRestProxyBase
  • Вызов: CCrmRestProxyBase::tryExternalizeProductFileField
protected function tryExternalizeProductFileField(&$fields, $fieldName, $multiple = false, $dynamic = true)
{
	if(!isset($fields[$fieldName]))
		return false;

	$productID = isset($fields['ID']) ? intval($fields['ID']) : 0;
	if(!$multiple)
	{
		if (!$dynamic)
		{
			$fileID = intval($fields[$fieldName]);
			if($fileID <= 0)
			{
				unset($fields[$fieldName]);
				return false;
			}

			$fields[$fieldName] = $this->externalizeProductFile($productID, $fieldName, 0, $fileID, $dynamic);
		}
		else
		{
			if (!(is_array($fields[$fieldName]) && isset($fields[$fieldName]['VALUE_ID'])
				&& isset($fields[$fieldName]['VALUE'])))
			{
				unset($fields[$fieldName]);
				return false;
			}

			$valueID = intval($fields[$fieldName]['VALUE_ID']);
			$fileID = intval($fields[$fieldName]['VALUE']);
			if($fileID <= 0)
			{
				unset($fields[$fieldName]);
				return false;
			}

			$fields[$fieldName] = $this->externalizeProductFile($productID, $fieldName, $valueID, $fileID, $dynamic);
		}
	}
	else
	{
		if (!self::isIndexedArray($fields[$fieldName]))
		{
			unset($fields[$fieldName]);
			return false;
		}

		$result = array();
		foreach($fields[$fieldName] as $element)
		{
			if (!(isset($element['VALUE_ID']) && isset($element['VALUE'])))
				continue;

			$valueID = intval($element['VALUE_ID']);
			$fileID = intval($element['VALUE']);
			if($fileID > 0)
			{
				$result[] = $this->externalizeProductFile($productID, $fieldName, $valueID, $fileID, $dynamic);
			}
		}
		$fields[$fieldName] = &$result;
		unset($result);
	}

	return true;
}

Добавить комментарий