Exemplo n.º 1
0
 /**
  * This is where form elements are defined
  */
 public function generateFields()
 {
     // Name field
     $name = new FormField(FormField::TYPE_TEXT_INPUT);
     $name->setName('name')->setAttributes(['placeholder' => 'Minta János', 'id' => 'name'])->setMandatory(true);
     $this->formFields['name'] = $name;
     // Phone
     $phone = new FormField(FormField::TYPE_TEXT_INPUT);
     $phone->setName('phone')->setAttributes(['placeholder' => '+36 30 111 2222', 'id' => 'phone'])->setSanitizationCallback(function ($value) {
         // only numbers, whitespaces and +
         return trim(preg_replace($this->phoneNumberPattern, '', $value));
     })->setValidationCallback(function ($value) {
         // Length constrain
         if (strlen($value) < 5) {
             return 'Telephone number is not valid';
         }
         // Regex constrain
         if (preg_match($this->phoneNumberPattern, $value)) {
             return 'Telephone number is not valid';
         }
         // False means it's OK!
         return false;
     })->setMandatory(true);
     $this->formFields['phone'] = $phone;
     // Email
     $email = new FormField(FormField::TYPE_TEXT_INPUT);
     $email->setName('email')->setAttributes(['placeholder' => '*****@*****.**', 'id' => 'email'])->setMandatory(true)->setSanitizationCallback(function ($value) {
         return sanitize_email($value);
     })->setValidationCallback(function ($value) {
         //var_dump('validating email: '.$value);
         if (!is_email($value)) {
             return 'Email is not valid';
         }
         // False means it's OK!
         return false;
     });
     $this->formFields['email'] = $email;
     // Submit
     $submit = new FormField(FormField::TYPE_SUBMIT);
     $submit->setValue('Elküldöm');
     $this->formFields['submit'] = $submit;
 }