• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/classes/general/crm_document.php
  • Класс: \CCrmDocument
  • Вызов: CCrmDocument::GetFieldInputControlOptions
static function GetFieldInputControlOptions($documentType, &$arFieldType, $jsFunctionName, &$value)
{
	$result = '';
	static $arDocumentFieldTypes = array();
	if (!array_key_exists($documentType, $arDocumentFieldTypes))
		$arDocumentFieldTypes[$documentType] = static::GetDocumentFieldTypes($documentType);

	if (!array_key_exists($arFieldType['Type'], $arDocumentFieldTypes[$documentType])
		|| !$arDocumentFieldTypes[$documentType][$arFieldType['Type']]['Complex'])
	{
		return '';
	}

	if ($arFieldType['Type'] == 'UF:iblock_element' || $arFieldType['Type'] == 'UF:iblock_section')
	{
		if (is_array($value))
		{
			reset($value);
			$valueTmp = intval(current($value));
		}
		else
			$valueTmp = intval($value);

		$iblockId = 0;
		if ($valueTmp > 0)
		{
			$dbResult = CIBlockElement::GetList(array(), array(($arFieldType['Type'] == 'UF:iblock_section' ? 'SECTION_ID' : 'ID') => $valueTmp), false, false, array('ID', 'IBLOCK_ID'));
			if ($arResult = $dbResult->Fetch())
				$iblockId = $arResult['IBLOCK_ID'];
		}

		if ($iblockId <= 0 && intval($arFieldType['Options']) > 0)
			$iblockId = intval($arFieldType['Options']);

		$defaultIBlockId = 0;

		$result .= '';

		$arFieldType['Options'] = $defaultIBlockId;
	}
	else if ($arFieldType['Type'] == 'UF:crm_status')
	{
		$statusID = $arFieldType['Options'];
		$arEntityTypes = CCrmStatus::GetEntityTypes();
		$default = 'STATUS';
		$result .= '';
	}
	else if ($arFieldType['Type'] == 'UF:crm')
	{
		$settings = $arFieldType['Options'] ?? null;
		if (empty($settings))
		{
			$settings = \Bitrix\Crm\Integration\BizProc\FieldType\Crm::getDefaultFieldSettings();
		}
		$settings['buttonLabel'] = GetMessage('CRM_DOCUMENT_CRM_ENTITY_OK');
		$htmlPieces = \Bitrix\Crm\Integration\BizProc\FieldType\Crm::renderSettingsHtmlPieces($jsFunctionName, $settings);
		$result .= $htmlPieces['inputs'];
		$result .= $htmlPieces['button'];
		$result .= "";
		$result .= '';
	}
	elseif ($arFieldType["Type"] == "select")
	{
		$valueTmp = $arFieldType["Options"];
		if (!is_array($valueTmp))
			$valueTmp = array($valueTmp => $valueTmp);

		$str = '';
		foreach ($valueTmp as $k => $v)
		{
			if (is_array($v) && count($v) == 2)
			{
				$v1 = array_values($v);
				$k = $v1[0];
				$v = $v1[1];
			}

			if ($k != $v)
				$str .= '['.$k.']'.$v;
			else
				$str .= $v;

			$str .= "\n";
		}
		$result .= '
'; $result .= GetMessage("IBD_DOCUMENT_XFORMOPTIONS1").'
'; $result .= GetMessage("IBD_DOCUMENT_XFORMOPTIONS2").'
'; $result .= ''; $result .= ''; } return $result; }