- Модуль: 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));
}
}