예제 #1
0
 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) {
                 }
             }
         }
     }
 }
예제 #2
0
파일: app.php 프로젝트: DarneoStudio/bitrix
 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));
         }
     }
 }
예제 #3
0
 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;
 }
예제 #4
0
파일: config.php 프로젝트: rasuldev/torino
 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));
         }
     }
 }
예제 #5
0
파일: user.php 프로젝트: nProfessor/Mytb
 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);
 }