Exemplo n.º 1
0
 /**
  * Test for get errors
  */
 public function testErrors()
 {
     $data = array('field' => 'title', 'message' => 'Is a required field');
     $result = array($data);
     $error = new Phprojekt_Error();
     $error->addError();
     $return = $error->getError();
     $this->assertEquals(array(array()), $return);
     $error->addError($data);
     $return = $error->getError();
     $this->assertEquals($result, $return);
 }
Exemplo n.º 2
0
 /**
  * Validate that $start is before $end.
  *
  * @param string $start Start date value.
  * @param string $end   End date value.
  *
  * @return boolean True for valid.
  */
 public function validateDateRange($start, $end)
 {
     if (!empty($start) && !empty($end)) {
         if (strtotime($start) > strtotime($end)) {
             $this->error->addError(array('field' => "Period", 'label' => Phprojekt::getInstance()->translate('Period'), 'message' => Phprojekt::getInstance()->translate('End date can not be before Start date')));
             return false;
         }
     }
     return true;
 }
Exemplo n.º 3
0
 /**
  * Return an error array if there is any error.
  *
  * @return array Array with 'field', 'label' and 'message'.
  */
 public function getError()
 {
     $errors = $this->_error->getError();
     return array_pop($errors);
 }
Exemplo n.º 4
0
 /**
  * Return if the values are valid or not.
  *
  * @return boolean True for valid.
  */
 public function recordValidate($class, $data, $fields)
 {
     $valid = true;
     foreach ($data as $varname => $value) {
         if (isset($class->{$varname})) {
             // Validate with the database_manager stuff
             foreach ($fields as $field) {
                 if ($field['key'] == $varname) {
                     // Check required
                     if (true === $field['required']) {
                         $error = $this->validateIsRequired($value);
                         if (null !== $error) {
                             $valid = false;
                             $this->error->addError(array('field' => $varname, 'label' => $field['label'], 'message' => $error));
                             break;
                         }
                     }
                     // Check value length
                     if (isset($field['length']) && $field['length'] > 0) {
                         if (strlen($value) > $field['length']) {
                             $valid = false;
                             $this->error->addError(array('field' => $varname, 'label' => $field['label'], 'message' => Phprojekt::getInstance()->translate('Maximum length exceeded for ' . 'field')));
                             break;
                         }
                     }
                     // Check value in range
                     if (($field['type'] == 'selectbox' || $field['type'] == 'multipleselectbox') && !empty($value)) {
                         $found = false;
                         foreach ($field['range'] as $range) {
                             if ($range['id'] == $value) {
                                 $found = true;
                                 break;
                             }
                         }
                         if (!$found) {
                             $valid = false;
                             $this->error->addError(array('field' => $varname, 'label' => $field['label'], 'message' => Phprojekt::getInstance()->translate('Value out of range')));
                             break;
                         }
                     } else {
                         if ($field['type'] == 'rating' && !empty($value)) {
                             if ($value > $field['range']['id'] || $value < 1) {
                                 $valid = false;
                                 $this->error->addError(array('field' => $varname, 'label' => $field['label'], 'message' => Phprojekt::getInstance()->translate('Value out of range')));
                                 break;
                             }
                         }
                     }
                     // Check value by type
                     $error = $this->validateValue($class, $varname, $value);
                     if (false === $error) {
                         $valid = false;
                         $this->error->addError(array('field' => $varname, 'label' => $field['label'], 'message' => Phprojekt::getInstance()->translate('Invalid Format')));
                     }
                     break;
                 }
             }
             // Validate an special fieldName
             $validator = 'validate' . ucfirst($varname);
             if ($validator != 'validateIsRequired') {
                 if (method_exists($class, $validator)) {
                     $error = call_user_func(array($class, $validator), $value);
                     if (null !== $error) {
                         $valid = false;
                         $this->error->addError(array('field' => $varname, 'label' => $field['label'], 'message' => $error));
                     }
                 }
             }
         }
     }
     return $valid;
 }