Lançado Adianti Framework 7.6!
Clique aqui para saber mais
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, -1PREG_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

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (1)


LC

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