• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/usertype.php
  • Класс: CAllUserTypeEntity
  • Вызов: CAllUserTypeEntity::CheckFields
function CheckFields($ID, $arFields, $bCheckUserType = true)
{
	/** @global CUserTypeManager $USER_FIELD_MANAGER */
	global $APPLICATION, $USER_FIELD_MANAGER;
	$aMsg = array();
	$ID = intval($ID);

	if(($ID <= 0 || array_key_exists("ENTITY_ID", $arFields)) && $arFields["ENTITY_ID"] == '')
		$aMsg[] = array("id" => "ENTITY_ID", "text" => GetMessage("USER_TYPE_ENTITY_ID_MISSING"));
	if(array_key_exists("ENTITY_ID", $arFields))
	{
		if(mb_strlen($arFields["ENTITY_ID"]) > 50)
			$aMsg[] = array("id" => "ENTITY_ID", "text" => GetMessage("USER_TYPE_ENTITY_ID_TOO_LONG1"));
		if(!preg_match('/^[0-9A-Z_]+$/', $arFields["ENTITY_ID"]))
			$aMsg[] = array("id" => "ENTITY_ID", "text" => GetMessage("USER_TYPE_ENTITY_ID_INVALID"));
	}

	if(($ID <= 0 || array_key_exists("FIELD_NAME", $arFields)) && $arFields["FIELD_NAME"] == '')
		$aMsg[] = array("id" => "FIELD_NAME", "text" => GetMessage("USER_TYPE_FIELD_NAME_MISSING"));
	if(array_key_exists("FIELD_NAME", $arFields))
	{
		if(mb_strlen($arFields["FIELD_NAME"]) < 4)
			$aMsg[] = array("id" => "FIELD_NAME", "text" => GetMessage("USER_TYPE_FIELD_NAME_TOO_SHORT"));
		if(mb_strlen($arFields["FIELD_NAME"]) > 50)
			$aMsg[] = array("id" => "FIELD_NAME", "text" => GetMessage("USER_TYPE_FIELD_NAME_TOO_LONG1"));
		if(strncmp($arFields["FIELD_NAME"], "UF_", 3) !== 0)
			$aMsg[] = array("id" => "FIELD_NAME", "text" => GetMessage("USER_TYPE_FIELD_NAME_NOT_UF"));
		if(!preg_match('/^[0-9A-Z_]+$/', $arFields["FIELD_NAME"]))
			$aMsg[] = array("id" => "FIELD_NAME", "text" => GetMessage("USER_TYPE_FIELD_NAME_INVALID"));
	}

	if(($ID <= 0 || array_key_exists("USER_TYPE_ID", $arFields)) && $arFields["USER_TYPE_ID"] == '')
		$aMsg[] = array("id" => "USER_TYPE_ID", "text" => GetMessage("USER_TYPE_USER_TYPE_ID_MISSING"));
	if(
		$bCheckUserType
		&& array_key_exists("USER_TYPE_ID", $arFields)
		&& !$USER_FIELD_MANAGER->GetUserType($arFields["USER_TYPE_ID"])
	)
		$aMsg[] = array("id" => "USER_TYPE_ID", "text" => GetMessage("USER_TYPE_USER_TYPE_ID_INVALID"));

	if(!empty($aMsg))
	{
		$e = new CAdminException($aMsg);
		$APPLICATION->ThrowException($e);
		return false;
	}
	return true;
}