Estado do Form e comportamento Gostaria de saber como faço para o formulário se comportar de acordo com o evento. Ex. um for de cadastro de usuário, quando for um usuário novo tem o campo senha como obrigatório, já no modo de edição não mostra o campo e mostra um botão para gerar nova senha. Até que consegui verificar se está em modo de edição com a seguinte condição: ...
FV
Estado do Form e comportamento  
Fechado
Gostaria de saber como faço para o formulário se comportar de acordo com o evento.
Ex. um for de cadastro de usuário, quando for um usuário novo tem o campo senha como obrigatório, já no modo de edição não mostra o campo e mostra um botão para gerar nova senha.

Até que consegui verificar se está em modo de edição com a seguinte condição:

 
  1. <?php if(isset($_GET["key"])) {} ?>


porém, mesmo colocando as validações dentro do if, na hora de salvar todas são verificadas.

Obrigado, fico no aguardo de uma ajuda.

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)


GF

Olá Fagner! Esse framework tem componentes incríveis! A maneira tradicional, inclusive está no livro de referência do framework é:
 
  1. <?php
  2. $cpf->addValidation('cpf', new TCPFValidator);
  3. $cnpj->addValidation('cnpj', new TCNPJValidator);
  4. ?>

Isso seria adicionado no método construtor. Mas isso geraria um problema: pessoas físicas seriam obrigadas a digitar um CNPJ e pessoas jurídicas um CPF. A sugestão é colocar uma validação posterior no método onSave da sua classe TPage. A mesma validação ficaria assim:
 
  1. <?php
  2. /**
  3. * method onSave()
  4. * Executed whenever the user clicks at the save button
  5. */
  6. function onSave()
  7. {
  8. try
  9. {
  10. // open a transaction with database 'exemplo'
  11. TTransaction::open('exemplo');
  12. // get the form data into an active record Cliente
  13. $object = $this->form->getData('Cliente');
  14. // Do CPF's validator
  15. // 1 = pessoa física, por isso o CPF deve ser validado
  16. if($object->tipo_pessoa_id == 1)
  17. {
  18. $validator = new TCPFValidator;
  19. $validator->validate('CPF',$object->cpf);
  20. }
  21. // Do CNPJ's validator
  22. // 2 = pessoa jurídica, por isso o CPF deve ser validado
  23. if($object->tipo_pessoa_id == 2)
  24. {
  25. $validator = new TCNPJValidator;
  26. $validator->validate('CNPJ',$object->cnpj);
  27. }
  28. // form validation
  29. $this->form->validate();
  30. // stores the object
  31. $object->store();
  32. // fill the form with the active record data
  33. $this->form->setData($object);
  34. // close the transaction
  35. TTransaction::close();
  36. // shows the success message
  37. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  38. // reload the listing
  39. }
  40. catch (Exception $e) // in case of exception
  41. {
  42. // shows the exception error message
  43. new TMessage('error', '<b>Error</b> ' . $e->getMessage());
  44. // undo all pending operations
  45. TTransaction::rollback();
  46. }
  47. }
  48. ?>


Valeu?