Esempio n. 1
0
 /**
  * Method to test for a valid color in hexadecimal.
  *
  * @param   object   &$element  The SimpleXMLElement object representing the <field /> tag for the form field object.
  * @param   mixed    $value     The form field value to validate.
  * @param   string   $group     The field name group control value. This acts as as an array container for the field.
  *                              For example if the field has name="foo" and the group value is set to "bar" then the
  *                              full field name would end up being "bar[foo]".
  * @param   object   &$input    An optional Registry object with the entire data set to validate against the entire form.
  * @param   object   &$form     The form object for which the field is being tested.
  * @return  boolean  True if the value is valid, false otherwise.
  */
 public function test(&$element, $value, $group = null, &$input = null, &$form = null)
 {
     // If the field is empty and not required, the field is valid.
     $required = (string) $element['required'] == 'true' || (string) $element['required'] == 'required';
     if (!$required && empty($value)) {
         return true;
     }
     // Test the value against the regular expression.
     if (!parent::test($element, $value, $group, $input, $form)) {
         return false;
     }
     // Check if we should test for uniqueness.
     $unique = (string) $element['unique'] == 'true' || (string) $element['unique'] == 'unique';
     if ($unique) {
         // Get the extra field check attribute.
         $userId = $form instanceof Form ? $form->getValue('id') : '';
         $duplicate = User::all()->whereEquals('email', $value)->where('id', '<>', (int) $userId)->total();
         if ($duplicate) {
             return false;
         }
     }
     return true;
 }