public static function checkFields($result, $primary, array $data) { parent::checkFields($result, $primary, $data); if (!$result instanceof Entity\UpdateResult) { // work out only when update() return; } foreach (static::getEntity()->getFields() as $field) { if ($field->getName() == 'PARENT_ID' && strlen($data['PARENT_ID'])) { //it cant be parent for itself if (intval($primary['ID']) == intval($data['PARENT_ID'])) { $result->addError(new Entity\FieldError($field, Loc::getMessage('SALE_LOCATION_TREE_ENTITY_CANNOT_MOVE_STRAIGHT_TO_ITSELF_EXCEPTION'), Entity\FieldError::INVALID_VALUE)); } else { try { $node = self::getNodeInfo($primary['ID']); $nodeDst = self::getNodeInfo($data['PARENT_ID']); // new parent cannot belong to node subtree if ($node['PARENT_ID'] != $nodeDst['ID']) { if ($nodeDst['LEFT_MARGIN'] >= $node['LEFT_MARGIN'] && $nodeDst['RIGHT_MARGIN'] <= $node['RIGHT_MARGIN']) { $result->addError(new Entity\FieldError($field, Loc::getMessage('SALE_LOCATION_TREE_ENTITY_CANNOT_MOVE_TO_ITSELF_EXCEPTION'), Entity\FieldError::INVALID_VALUE)); } } } catch (Main\SystemException $e) { } } } } }
public static function checkFields(Result $result, $primary, array $data) { parent::checkFields($result, $primary, $data); if ($result instanceof Entity\AddResult) { $entity = self::getEntity(); if (!$data["CODE"]) { $result->addError(new Entity\FieldError($entity->getField("CODE"), "Can not be empty!", FieldError::EMPTY_REQUIRED)); } elseif (!$data["FOLDER"]) { $result->addError(new Entity\FieldError($entity->getField("FOLDER"), "Can not be empty!", FieldError::EMPTY_REQUIRED)); } elseif (!$data["NAME"]) { $result->addError(new Entity\FieldError($entity->getField("NAME"), "Can not be empty!", FieldError::EMPTY_REQUIRED)); } } }
public static function checkFields(Entity\Result $result, $primary, array $data) { parent::checkFields($result, $primary, $data); if (isset($data['SITE_ID'])) { $selectResult = \Bitrix\Main\SiteTable::getByPrimary($data['SITE_ID']); if (!$selectResult->fetch()) { $field = static::getEntity()->getField('SITE_ID'); $result->addError(new Entity\FieldError($field, Localization\Loc::getMessage('MAIN_ENTITY_FIELD_INVALID', array('#FIELD_TITLE#' => $field->getTitle())), Entity\FieldError::INVALID_VALUE)); } } if (!empty($data['ICON'])) { if (!is_scalar($data['ICON']) || !preg_match('/[0-9]+/', $data['ICON'])) { $field = static::getEntity()->getField('ICON'); $result->addError(new Entity\FieldError($field, Localization\Loc::getMessage('MAIN_ENTITY_FIELD_INVALID', array('#FIELD_TITLE#' => $field->getTitle())), Entity\FieldError::INVALID_VALUE)); } } return $result; }
public static function checkFields(Result $result, $primary, array $data) { parent::checkFields($result, $primary, $data); $availablePlatforms = self::getSupportedPlatforms(); if ($result instanceof Entity\AddResult) { $entity = self::getEntity(); if (!$data["APP_CODE"]) { $result->addError(new Entity\FieldError($entity->getField("APP_CODE"), "Can not be empty!", 1)); } else { if (!$data["PLATFORM"]) { $result->addError(new Entity\FieldError($entity->getField("PLATFORM"), "Can not be empty!", 1)); } elseif (!in_array($data["PLATFORM"], $availablePlatforms)) { $result->addError(new Entity\FieldError($entity->getField("PLATFORM"), "The passed value in not available!", 1)); } } $selectResult = self::getList(array("filter" => array("APP_CODE" => $data["APP_CODE"], "PLATFORM" => $data["PLATFORM"]))); if ($selectResult->getSelectedRowsCount() > 0) { $result->addError(new Entity\EntityError("Such configuration is already exists!", 1000)); } } }
public static function checkFields($data, $action = 'update', $throwException = false) { // 1. Способ накопления ошибок (массив?) // 2. во внешней авторизации пропускаются проверки, которые должны быть стандартными // может передавать в checkFields параметр excludes? а может просто сделать копию data без этих полей if (is_set($data, "PERSONAL_PHOTO")) { if (strlen($data["PERSONAL_PHOTO"]["name"]) <= 0 && strlen($data["PERSONAL_PHOTO"]["del"]) <= 0) { unset($data["PERSONAL_PHOTO"]); } else { $result = CFile::CheckImageFile($data["PERSONAL_PHOTO"]); if (strlen($result) > 0) { static::$errors[] = $result; } } } // if(is_set($data, "PERSONAL_BIRTHDAY") && strlen($data["PERSONAL_BIRTHDAY"])>0 && !CheckDateTime($data["PERSONAL_BIRTHDAY"])) // { // static::$errors[] = GetMessage("WRONG_PERSONAL_BIRTHDAY"); // } if (is_set($data, "WORK_LOGO")) { if (strlen($data["WORK_LOGO"]["name"]) <= 0 && strlen($data["WORK_LOGO"]["del"]) <= 0) { unset($data["WORK_LOGO"]); } else { $result = CFile::CheckImageFile($data["WORK_LOGO"]); if (strlen($result) > 0) { static::$errors[] = $result; } } } parent::checkFields($data, $action, $throwException); }