Skip to content

Instantly share code, notes, and snippets.

@humbertodosreis
Last active August 29, 2015 14:04
Show Gist options
  • Save humbertodosreis/ac03f282e1b16d9e323c to your computer and use it in GitHub Desktop.
Save humbertodosreis/ac03f282e1b16d9e323c to your computer and use it in GitHub Desktop.
Exemplos de implementações de formulários com Zend Framework 1.
<?php
// view script utilizado no exemplo anterior
// application/modules/admin/views/forms/_loginForm.phtml
?>
<form action="<?= $this->element->getAction() ?>" method="<?= $this->element->getMethod() ?>" role="form">
<div class="form-group">
<?= $this->element->email ?>
<!--<label for="exampleInputEmail1">Email address</label>-->
<!--<input type="email" class="form-control" id="exampleInputEmail1" placeholder="Enter email">-->
</div>
<div class="form-group">
<?= $this->element->senha ?>
<!--<label for="exampleInputPassword1">Password</label>C-->
<!--<input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">-->
</div>
<?php
echo $this->element->submit . PHP_EOL;
echo $this->element->reset . PHP_EOL;
?>
</form>
<?php
/* Formulário utilizando definição de decorators */
class Admin_Form_Login extends Zend_Form {
public function init() {
//action e method
$this->setMethod('post');
$this->setElementDecorators(array(
array('ViewHelper', array('class' => 'form-control')),
array('Errors'),
array('Description'),
array('Label'),
array('HtmlTag', array('tag' => 'div', 'class' => 'form-group')),
));
//nome do formulário
$this->setName('Login');
//elemento para o campo username
$username = new Zend_Form_Element_Text('email');
//configurar o label, dizer q é obrigatório, adicionar um filtro e um validador
$username->setLabel('E-mail')
->setRequired(true)
->addFilter('StripTags')
->addValidator('NotEmpty')
->setAttrib('class', 'form-control')
->addValidator('EmailAddress');
//elemento para a senha
$password = new Zend_Form_Element_Password('senha');
$password->setLabel('Senha')
->setRequired(true)
->addFilter('StripTags')
->setAttrib('class', 'form-control')
->addValidator('NotEmpty');
//botão de submit
$submit = new Zend_Form_Element_Submit('submit');
$submit->setLabel('Entrar');
$submit->setAttrib('id', 'Entrar')
->setIgnore(true);
$reset = new Zend_Form_Element_Submit('limpar');
$reset->setLabel('Limpar');
$reset->setAttrib('id', 'Limpar')
->setIgnore(true);
//exemplo de class css
$submit->setAttrib('class', 'btn btn-primary');
$submit->removeDecorator('Label');
$reset->setAttrib('class', 'btn btn-default');
$reset->removeDecorator('Label');
//adicionar os campos ao formulário
$this->addElements(array($username, $password, $submit));
}
}
<?php
/* Formulário utilizando definição de decorators com uma view script */
class Admin_Form_Login extends Zend_Form {
public function init() {
//action e method
$this->setDecorators(array(
array('ViewScript', array(
// the view template script
'viewScript' => 'forms/_loginForm.phtml',
// the module that contains our view templates
'viewModule' => 'admin'
))
));
//nome do formulário
$this->setName('Login');
//elemento para o campo username
$username = new Zend_Form_Element_Text('email');
//configurar o label, dizer q é obrigatório, adicionar um filtro e um validador
$username->setLabel('E-mail')
->setRequired(true)
->addFilter('StripTags')
->addValidator('NotEmpty')
->setAttrib('class', 'form-control')
->addValidator('EmailAddress');
//elemento para a senha
$password = new Zend_Form_Element_Password('senha');
$password->setLabel('Senha')
->setRequired(true)
->addFilter('StripTags')
->setAttrib('class', 'form-control')
->addValidator('NotEmpty');
//botão de submit
$submit = new Zend_Form_Element_Submit('submit');
$submit->setLabel('Entrar');
$submit->setAttrib('id', 'Entrar')
->setIgnore(true);
$reset = new Zend_Form_Element_Reset('reset');
$reset->setLabel('Limpar');
$reset->setAttrib('id', 'Limpar')
->setIgnore(true);
//exemplo de class css
$submit->setAttrib('class', 'btn btn-primary');
$submit->removeDecorator('Label');
$reset->setAttrib('class', 'btn btn-default');
$reset->removeDecorator('Label');
//adicionar os campos ao formulário
$this->addElements(array($username, $password, $submit, $reset));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment