Validar E-Mail separados por ponto e virgula Precisei validar um campo do tipo e-mail, só que este campo poderia aceitar mais de um e-mail, sendo separados por ponto e virgula ou virgula ou espaço, então fiz um validador de e-mail, copiando o atual TEmailValidator, ficou assim: ...
LC
Validar E-Mail separados por ponto e virgula  
Precisei validar um campo do tipo e-mail, só que este campo poderia aceitar mais de um e-mail, sendo separados por ponto e virgula ou virgula ou espaço, então fiz um validador de e-mail, copiando o atual TEmailValidator, ficou assim:

 
  1. <?php
  2. /**
  3. * Email validation com ponto e virgula
  4. *
  5. * @version 5.0
  6. * @package validator
  7. * @author Pablo Dall'Oglio
  8. * @copyright Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
  9. * @license http://www.adianti.com.br/framework-license
  10. *
  11. * @alterado Incluído rotina Validação para e-mail com ponto-e-virgula - Leandro - Imprime Informática - 02/02/2018
  12. */
  13. class TEmailValidaPontoVirgula extends TFieldValidator
  14. {
  15. /**
  16. * Validate a given value
  17. * @param $label Identifies the value to be validated in case of exception
  18. * @param $value Value to be validated
  19. * @param $parameters aditional parameters for validation
  20. */
  21. public function validate($label, $value, $parameters = NULL)
  22. {
  23. // cria um array com os e-mails
  24. $emails = preg_split('/[;, ]/', $value, -1, PREG_SPLIT_NO_EMPTY);
  25. // faz leitura de cada e-mail
  26. foreach ($emails as $email)
  27. {
  28. $filter = filter_var(trim($email), FILTER_VALIDATE_EMAIL);
  29. if ($filter === FALSE)
  30. {
  31. throw new Exception(AdiantiCoreTranslator::translate('The field ^1 contains an invalid e-mail', $label));
  32. }
  33. }
  34. }
  35. }
  36. ?>


Salvei o arquivo na pasta applibvalidator
Nomeando como : TEmailValidaPontoVirgula.class.php

Usar da mesma forma, exemplos:
$email->addValidation('E-Mail', new TEmailValidaPontoVirgula());

ou assim no onSave:
$validador = new TEmailValidaPontoVirgula;
$validador->validate('E-Mail', $object->email);
$this->form->validate();

Segue em anexo

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (1)


LC

Corrigindo pq esqueci q não pega barra:
Salvei o arquivo na pasta: app / lib / validator