CBPVirtualDocument::getDocumentFieldTypes

  1. Bitrix24 API (v. 23.675.0)
  2. bizproc
  3. CBPVirtualDocument
  4. getDocumentFieldTypes
  • Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/virtualdocument.php
  • Класс: CBPVirtualDocument
  • Вызов: CBPVirtualDocument::getDocumentFieldTypes
static function getDocumentFieldTypes($documentType)
{
	$typesMap = FieldType::getBaseTypesMap();

	$arResult = array(
		"S" => array("Name" => GetMessage("BPVDX_STRING"), "BaseType" => "string", 'typeClass' => $typesMap[FieldType::STRING]),
		"T" => array("Name" => GetMessage("BPVDX_TEXT"), "BaseType" => "text", 'typeClass' => $typesMap[FieldType::TEXT]),
		"N" => array("Name" => GetMessage("BPVDX_NUM"), "BaseType" => "double", 'typeClass' => $typesMap[FieldType::DOUBLE]),
		"L" => array("Name" => GetMessage("BPVDX_LIST"), "BaseType" => "select", "Complex" => true, 'typeClass' => $typesMap[FieldType::SELECT]),
		"F" => array("Name" => GetMessage("BPVDX_FILE"), "BaseType" => "file", 'typeClass' => $typesMap[FieldType::FILE]),
		"B" => array("Name" => GetMessage("BPVDX_YN"), "BaseType" => "bool", 'typeClass' => $typesMap[FieldType::BOOL]),
	);

	foreach (CIBlockProperty::GetUserType() as  $ar)
	{
		$t = $ar["PROPERTY_TYPE"].":".$ar["USER_TYPE"];

		if($t == "S:ECrm")
		{
			$t = "E:ECrm";
		}

		if (COption::GetOptionString("bizproc", "SkipNonPublicCustomTypes", "N") == "Y"
			&& !array_key_exists("GetPublicEditHTML", $ar) && $t != "S:UserID" && $t != "S:DateTime")
			continue;

		$arResult[$t] = array("Name" => $ar["DESCRIPTION"], "BaseType" => "string", 'typeClass' => BizprocTypeUserTypeProperty::class);
		if ($t == "S:UserID")
		{
			$arResult[$t]["BaseType"] = "user";
			$arResult[$t]['typeClass'] = $typesMap[FieldType::USER];
		}
		elseif ($t == "S:employee" && COption::GetOptionString("bizproc", "employee_compatible_mode", "N") != "Y")
		{
			$arResult[$t]["BaseType"] = "user";
			$arResult[$t]['typeClass'] = BizprocTypeUserTypePropertyEmployee::class;
		}
		elseif ($t == "S:DateTime")
		{
			$arResult[$t]["BaseType"] = "datetime";
			$arResult[$t]["typeClass"] = $typesMap[FieldType::DATETIME];
		}
		elseif ($t == "S:Date")
		{
			$arResult[$t]["BaseType"] = "date";
			$arResult[$t]["typeClass"] = $typesMap[FieldType::DATE];
		}
		elseif ($t == "E:EList")
		{
			$arResult[$t]["BaseType"] = "string";
			$arResult[$t]["Complex"] = true;
			$arResult[$t]['typeClass'] = BizprocTypeUserTypePropertyElist::class;
		}
		elseif ($t == 'S:HTML')
		{
			$arResult[$t]['typeClass'] = BizprocTypeUserTypePropertyHtml::class;
		}
		elseif($t == 'S:DiskFile')
		{
			$arResult[$t]["BaseType"] = "int";
			$arResult[$t]['typeClass'] = BizprocTypeUserTypePropertyDiskFile::class;
		}
		elseif($t == 'E:ECrm')
		{
			$arResult[$t]["BaseType"] = "string";
			$arResult[$t]["Complex"] = true;
			$arResult[$t]['typeClass'] = BizprocTypeECrm::class;
		}
	}

	return $arResult;
}

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