• Модуль: lists
  • Путь к файлу: ~/bitrix/modules/lists/lib/entity/field.php
  • Класс: BitrixListsEntityField
  • Вызов: Field::validateFields
private function validateFields($fields)
{
	if (isset($fields["SETTINGS"]["ADD_READ_ONLY_FIELD"]) && $fields["SETTINGS"]["ADD_READ_ONLY_FIELD"] == "Y")
	{
		$defaultValueError = false;
		switch ($fields["TYPE"])
		{
			case "SORT":
				$defaultValueError = ($fields["DEFAULT_VALUE"] == '');
				break;
			case "L":
				if (is_array($fields["LIST_DEF"]))
				{
					$defaultValueError = (empty(current($fields["LIST_DEF"])));
				}
				break;
			case "S:HTML":
				$defaultValueError = (empty($fields["DEFAULT_VALUE"]["TEXT"]));
				break;
			default:
				$defaultValueError = (empty($fields["DEFAULT_VALUE"]));
		}
		if ($defaultValueError)
		{
			$this->errorCollection->setError(new Error(
				"The default value of the field "".$fields["NAME"]."" is required", self::ERROR_SAVE_FIELD));
		}
	}

	$formatError = "";
	if ($fields["TYPE"] == "PREVIEW_PICTURE")
	{
		$fields["DEFAULT_VALUE"]["METHOD"] = "resample";
		$fields["DEFAULT_VALUE"]["COMPRESSION"] = intval(COption::getOptionString("main", "image_resize_quality", "95"));
	}
	elseif ($fields["TYPE"] == "S:Date")
	{
		if (!empty($fields["DEFAULT_VALUE"]) && !CheckDateTime($fields["DEFAULT_VALUE"], FORMAT_DATE))
		{
			$formatError = "The default value of the field "".$fields["NAME"]."" is incorrect";
		}
	}
	elseif($fields["TYPE"] == "S:DateTime")
	{
		if(!empty($fields["DEFAULT_VALUE"]) && !CheckDateTime($fields["DEFAULT_VALUE"]))
		{
			$formatError = "The default value of the field "".$fields["NAME"]."" is incorrect";
		}
	}
	if (preg_match("/^(G|G:|E|E:)/", $fields["TYPE"]))
	{
		$blocks = CLists::getIBlocks($this->params["IBLOCK_TYPE_ID"], "Y", $this->params["SOCNET_GROUP_ID"]);
		if (mb_substr($fields["TYPE"], 0, 1) == "G")
		{
			unset($blocks[$this->params["IBLOCK_ID"]]);
		}
		if (!array_key_exists($fields["LINK_IBLOCK_ID"], $blocks))
		{
			$formatError = "Incorrect lists specified for "".$fields["NAME"]."" property";
		}
	}
	if ($formatError)
	{
		$this->errorCollection->setError(new Error(
			"The default value of the field "".$fields["NAME"]."" is required", self::ERROR_SAVE_FIELD));
	}
}