public function addElements() { //-- E-mail current ------------------------------------ $email_current = new Element\Email('email_current'); $email_current->setAttribute('readonly', 'true'); $email_current->setAttribute('class', 'form-control'); $email_current->setAttribute('id', 'email-old'); $email_current->setLabel('Current'); $email_current->setLabelAttributes(array('class' => 'control-label', 'for' => 'email-current')); //-- E-mail new --------------------------------------- $email = new Element\Email('email'); $email->setAttribute('placeholder', '*****@*****.**'); $email->setAttribute('required', 'true'); $email->setAttribute('class', 'form-control'); $email->setAttribute('id', 'email'); $email->setLabel('New'); $email->setLabelAttributes(array('class' => 'control-label', 'for' => 'email')); //-- Submit ------------------------------------- $submit = new Element\Submit('submit'); $submit->setAttribute('class', 'btn btn-success'); $submit->setValue('Send'); // Binding elements $this->add($email_current); $this->add($email); $this->add($submit); }
public function __construct(AuthenticationService $authService) { parent::__construct('login'); $this->filter = new InputFilter(); $email = new Element\Email('email'); $email->setAttribute('required', true); $email->setAttribute('placeholder', 'Email Address'); $this->add($email); $emailFilter = new Input('email'); $emailFilter->setRequired(true); $this->filter->add($emailFilter); $password = new Element\Password('password'); $password->setAttribute('required', true); $password->setAttribute('placeholder', 'Password'); $this->add($password); $passwordFilter = new Input('password'); $passwordFilter->setRequired(true); $passwordFilter->getValidatorChain()->attach(new AuthValidator\Authentication(array('message' => 'Invalid email address or password', 'service' => $authService, 'adapter' => $authService->getAdapter(), 'identity' => 'email', 'credential' => 'password'))); $this->filter->add($passwordFilter); $buttons = new Form('buttons'); $buttons->setOption('twb-layout', 'inline'); $buttons->setAttribute('class', 'form-group'); $submit = new Element\Submit('submit'); $submit->setAttribute('class', 'btn-primary pull-right'); $submit->setOption('glyphicon', 'log-in'); $submit->setLabel('Log In'); $buttons->add($submit); $forgot = new Element\Submit('forgot'); $forgot->setAttribute('formnovalidate', true); $forgot->setAttribute('class', 'btn-warning pull-right'); $forgot->setOption('glyphicon', 'question-sign'); $forgot->setLabel('Forgot Password'); $buttons->add($forgot); $this->add($buttons); }
public function init() { $username = new Element\Text('username'); $username->setAttribute('class', 'form-control'); $username->setAttribute('placeholder', 'Username'); $username->setAttribute('required', true); $this->add($username); $password = new Element\Text('password'); $password->setAttribute('class', 'form-control'); $password->setAttribute('placeholder', 'Password'); $password->setAttribute('required', true); $this->add($password); $confirmPassword = new Element\Text('confirm_password'); $confirmPassword->setAttribute('class', 'form-control'); $confirmPassword->setAttribute('placeholder', 'Confirm Password'); $confirmPassword->setAttribute('required', true); $this->add($confirmPassword); $email = new Element\Email('email'); $email->setAttribute('class', 'form-control'); $email->setAttribute('placeholder', 'Email'); $email->setAttribute('required', true); $this->add($email); $firstName = new Element\Text('first_name'); $firstName->setAttribute('class', 'form-control'); $firstName->setAttribute('placeholder', 'First Name'); $firstName->setAttribute('required', true); $this->add($firstName); $lastName = new Element\Text('last_name'); $lastName->setAttribute('class', 'form-control'); $lastName->setAttribute('placeholder', 'Last Name'); $lastName->setAttribute('required', true); $this->add($lastName); }
public function testLazyLoadsExplodeValidatorWhenMultipleAttributeSet() { $element = new EmailElement(); $element->setAttribute('multiple', true); $validator = $element->getValidator(); $this->assertInstanceOf('Zend\\Validator\\Explode', $validator); }
public function __construct() { parent::__construct(); $this->setAttribute('method', 'post'); $this->setAttribute('class', 'panel-body'); $mail = new Email('email'); $mail->setLabel('email'); $mail->setAttribute('class', 'form-control'); $this->add($mail); $captcha = new Captcha('register_captcha'); $imageAdapter = new Image(['font' => __DIR__ . '/../../fonts/arial.ttf']); $imageAdapter->setHeight(100); $imageAdapter->setWidth(400); $imageAdapter->setFontSize(48); $imageAdapter->setDotNoiseLevel(400); $imageAdapter->setLineNoiseLevel(40); $captcha->setCaptcha($imageAdapter); $captcha->setLabel('enter.text.from.the.picture'); $captcha->setAttribute('class', 'form-control'); $this->add($captcha); $submit = new Submit('send'); $submit->setValue('send'); $submit->setAttribute('class', 'btn btn-primary'); $this->add($submit); }
public function addElements() { //-- Profile name ---------------------------------- $login = new Element\Text('profile_name'); $login->setAttribute('placeholder', 'profile_name'); $login->setAttribute('required', 'true'); $login->setAttribute('class', 'form-control'); $login->setAttribute('id', 'profile-name'); $login->setLabel('Profile name'); $login->setLabelAttributes(array('class' => 'control-label', 'for' => 'profile-name')); //-- E-mail --------------------------------------- $email = new Element\Email('email'); $email->setAttribute('placeholder', '*****@*****.**'); $email->setAttribute('required', 'true'); $email->setAttribute('class', 'form-control'); $email->setAttribute('id', 'email'); $email->setLabel('E-mail'); $email->setLabelAttributes(array('class' => 'control-label', 'for' => 'email')); //-- Password ------------------------------------ $password = new Element\Password('password'); $password->setAttribute('placeholder', '*****'); $password->setAttribute('required', 'true'); $password->setAttribute('class', 'form-control'); $password->setAttribute('id', 'password'); $password->setLabel('Password'); $password->setLabelAttributes(array('class' => 'control-label', 'for' => 'password')); //-- Password (confirm) --------------------------- $password_confirm = new Element\Password('confirm_password'); $password_confirm->setAttribute('placeholder', '*****'); $password_confirm->setAttribute('required', 'true'); $password_confirm->setAttribute('class', 'form-control'); $password_confirm->setAttribute('id', 'confirm-password'); $password_confirm->setLabel('Confirm password'); $password_confirm->setLabelAttributes(array('class' => 'control-label', 'for' => 'confirm_password')); //-- Submit ------------------------------------- $submit = new Element\Submit('submit'); $submit->setAttribute('class', 'btn btn-success'); $submit->setValue('Send'); // Binding elements $this->add($login); $this->add($email); $this->add($password); $this->add($password_confirm); $this->add($submit); }
public function __construct(EntityRepository $repository) { parent::__construct('forgot'); $this->filter = new InputFilter(); $email = new Element\Email('email'); $email->setAttribute('required', true); $email->setAttribute('placeholder', 'Email Address'); $this->add($email); $emailFilter = new Input('email'); $emailFilter->setRequired(true); $emailFilter->getValidatorChain()->attach(new DoctrineValidator\ObjectExists(array('message' => 'Email address not found', 'object_repository' => $repository, 'fields' => 'email'))); $this->filter->add($emailFilter); $submit = new Element\Submit('submit'); $submit->setAttribute('class', 'btn-primary pull-right'); $submit->setOption('glyphicon', 'lock'); $submit->setLabel('Reset Password'); $this->add($submit); }
public function __construct($name = null) { parent::__construct(__CLASS__); $this->setAttribute('method', 'post'); $this->setAttribute('enctype', 'multipart/form-data'); $name = new Element\Hidden('id'); $this->add($name); $name = new Element\Text('name'); $name->setLabel("Full Name"); $this->add($name); $email = new Element\Email('email'); $email->setLabel("Email"); $email->setAttribute('required', 'required'); $this->add($email); $submit = new Element\Submit('submit'); $submit->setValue("submit")->setLabel("submit"); $this->add($submit); }
public function __construct() { parent::__construct(); $this->setAttribute('method', 'post'); $this->setAttribute('class', 'panel-body'); $username = new Text('username'); $username->setLabel('username'); $username->setAttribute('class', 'form-control'); $username->setAttribute('data-urr', '/isusernameinuse'); $this->add($username); $mail = new Email('email'); $mail->setLabel('email'); $mail->setAttribute('class', 'form-control'); $this->add($mail); $password = new Password('password'); $password->setLabel('password'); $password->setAttribute('class', 'form-control'); $this->add($password); $password2 = new Password('password2'); $password2->setLabel('repeat.password'); $password2->setAttribute('class', 'form-control'); $this->add($password2); $captcha = new Captcha('registerCaptcha'); $imageAdapter = new Image(['font' => __DIR__ . '/../../fonts/arial.ttf']); $imageAdapter->setHeight(100); $imageAdapter->setWidth(400); $imageAdapter->setFontSize(48); $imageAdapter->setDotNoiseLevel(400); $imageAdapter->setLineNoiseLevel(40); $captcha->setCaptcha($imageAdapter); $captcha->setLabel('enter.text.from.the.picture'); $captcha->setAttribute('class', 'form-control'); $this->add($captcha); $agb = new Checkbox('gtcAccept'); $agb->setLabel('accept.terms.of.gtc'); $agb->setAttribute('class', 'form-control'); $agb->setLabelAttributes(['class' => 'checkboxLabel']); $this->add($agb); $submit = new Submit('register'); $submit->setValue('register'); $submit->setAttribute('class', 'btn btn-primary'); $this->add($submit); }
protected function addElements() { $username = new Element\Text('username'); $username->setLabel('Username'); $username->setAttribute('required', 'required'); $this->add($username); $email = new Element\Email('email'); $email->setLabel("Email"); $email->setAttribute('required', 'required'); $this->add($email); $password = new Element\Password('password'); $password->setLabel('password'); $password->setAttribute('required', 'required'); $this->add($password); $remember = new Element\Checkbox('rememberme'); $remember->setLabel('remember me'); $this->add($remember); $submit = new Element\Submit('submit'); $submit->setValue("submit")->setLabel("submit"); $this->add($submit); }
public function __construct(array $roles) { parent::__construct(); $this->setAttribute('method', 'post'); $this->setAttribute('class', 'panel-body'); $username = new Text('username'); $username->setLabel('username'); $username->setAttribute('class', 'form-control'); $username->setAttribute('data-urr', '/isusernameinuse'); $this->add($username); $mail = new Email('email'); $mail->setLabel('email'); $mail->setAttribute('class', 'form-control'); $this->add($mail); $role = new Select('role'); $role->setLabel('role'); $role->setAttribute('class', 'form-control'); $role->setValueOptions($roles); $this->add($role); $submit = new Submit('save'); $submit->setValue('save'); $submit->setAttribute('class', 'btn btn-primary'); $this->add($submit); }
public function __construct(EntityRepository $repository) { parent::__construct('signup'); $this->filter = new InputFilter(); $email = new Element\Email('email'); $email->setAttribute('required', true); $email->setAttribute('placeholder', 'Email Address'); $this->add($email); $emailFilter = new Input('email'); $emailFilter->setRequired(true); $emailFilter->getValidatorChain()->attach(new DoctrineValidator\NoObjectExists(array('message' => 'Email address already in use', 'object_repository' => $repository, 'fields' => 'email'))); $this->filter->add($emailFilter); $password = new Element\Password('password'); $password->setAttribute('required', true); $password->setAttribute('placeholder', 'Password'); $this->add($password); $passwordFilter = new Input('password'); $passwordFilter->setRequired(true); $passwordFilter->getFilterChain()->attach(new Filter\StringTrim()); $passwordFilter->getValidatorChain()->attach(new AppValidator\PasswordStrength()); $this->filter->add($passwordFilter); $confirmPassword = new Element\Password('confirmPassword'); $confirmPassword->setAttribute('required', true); $confirmPassword->setAttribute('placeholder', 'Confirm Password'); $this->add($confirmPassword); $confirmPasswordFilter = new Input('confirmPassword'); $confirmPasswordFilter->setRequired(true); $confirmPasswordFilter->getFilterChain()->attach(new Filter\StringTrim()); $confirmPasswordFilter->getValidatorChain()->attach(new Validator\Identical('password')); $this->filter->add($confirmPasswordFilter); $firstName = new Element\Text('firstName'); $firstName->setAttribute('required', true); $firstName->setAttribute('placeholder', 'First Name'); $this->add($firstName); $firstNameFilter = new Input('firstName'); $firstNameFilter->setRequired(true); $firstNameFilter->getFilterChain()->attach(new AppFilter\TitleCase()); $firstNameFilter->getFilterChain()->attach(new Filter\StringTrim()); $firstNameFilter->getFilterChain()->attach(new Filter\StripTags()); $firstNameFilter->getValidatorChain()->attach(new Validator\StringLength(array('max' => 35))); $firstNameFilter->getValidatorChain()->attach(new LocaleValidator\Alpha(array('allowWhiteSpace' => true))); $this->filter->add($firstNameFilter); $lastName = new Element\Text('lastName'); $lastName->setAttribute('required', true); $lastName->setAttribute('placeholder', 'Last Name'); $this->add($lastName); $lastNameFilter = new Input('lastName'); $lastNameFilter->setRequired(true); $lastNameFilter->getFilterChain()->attach(new AppFilter\TitleCase()); $lastNameFilter->getFilterChain()->attach(new Filter\StringTrim()); $lastNameFilter->getFilterChain()->attach(new Filter\StripTags()); $lastNameFilter->getValidatorChain()->attach(new Validator\StringLength(array('max' => 35))); $lastNameFilter->getValidatorChain()->attach(new LocaleValidator\Alpha(array('allowWhiteSpace' => true))); $this->filter->add($lastNameFilter); $street = new Element\Text('street'); $street->setAttribute('required', true); $street->setAttribute('placeholder', 'Street Address'); $this->add($street); $streetFilter = new Input('street'); $streetFilter->setRequired(true); $streetFilter->getFilterChain()->attach(new Filter\StringTrim()); $streetFilter->getFilterChain()->attach(new Filter\StripTags()); $streetFilter->getValidatorChain()->attach(new Validator\StringLength(array('max' => 50))); $this->filter->add($streetFilter); $city = new Element\Text('city'); $city->setAttribute('required', true); $city->setAttribute('placeholder', 'City'); $this->add($city); $cityFilter = new Input('city'); $cityFilter->setRequired(true); $cityFilter->getFilterChain()->attach(new Filter\StringTrim()); $cityFilter->getFilterChain()->attach(new Filter\StripTags()); $cityFilter->getValidatorChain()->attach(new Validator\StringLength(array('max' => 30))); $this->filter->add($cityFilter); $state = new Element\Text('state'); $state->setAttribute('required', true); $state->setAttribute('placeholder', 'State'); $this->add($state); $stateFilter = new Input('state'); $stateFilter->setRequired(true); $stateFilter->getFilterChain()->attach(new Filter\StringTrim()); $stateFilter->getFilterChain()->attach(new Filter\StripTags()); $stateFilter->getFilterChain()->attach(new Filter\StringToUpper()); $stateFilter->getValidatorChain()->attach(new Validator\StringLength(array('min' => 2, 'max' => 2))); $this->filter->add($stateFilter); $postalCode = new Element\Text('postalCode'); $postalCode->setAttribute('required', true); $postalCode->setAttribute('placeholder', 'Postal Code'); $this->add($postalCode); $postalCodeFilter = new Input('postalCode'); $postalCodeFilter->setRequired(true); $postalCodeFilter->getFilterChain()->attach(new Filter\StringTrim()); $postalCodeFilter->getFilterChain()->attach(new Filter\StripTags()); $this->filter->add($postalCodeFilter); $phone = new AppElement\Phone('phone'); $phone->setAttribute('required', true); $phone->setAttribute('placeholder', 'Phone Number'); $this->add($phone); $phoneFilter = new Input('phone'); $phoneFilter->setRequired(true); $this->filter->add($phoneFilter); $website = new Element\Url('website'); $website->setAttribute('placeholder', 'Website'); $this->add($website); $websiteFilter = new Input('website'); $websiteFilter->setRequired(false); $this->filter->add($websiteFilter); $submit = new Element\Submit('submit'); $submit->setAttribute('class', 'btn-primary pull-right'); $submit->setOption('glyphicon', 'user'); $submit->setLabel('Sign Up'); $this->add($submit); }
public function forgottenAction() { $email = new Element\Email('email'); $email->setLabel('Registered email'); $email->setAttribute('required', 'required'); $form = new Form('password_forgotten'); $form->add($email); $emailInput = new Input(); $emailInput->getFilterChain()->attachByName('StringTrim'); $emailInput->getValidatorChain()->attachByName('EmailAddress'); $inputFilter = new InputFilter(); $inputFilter->add($emailInput); $request = $this->getRequest(); if ($request->isPost()) { $form->setData($request->getPost()); if ($form->isValid()) { $email = $form->get('email')->getValue(); //get the filtered value //Check if the email is present in the DB $entityManager = $this->getServiceLocator()->get('entity-manager'); $userEntity = $this->getServiceLocator()->get('user-entity'); $user = $entityManager->getRepository(get_class($userEntity))->findOneByEmail($email); if (!$user) { $this->flashMessenger()->addErrorMessage($this->translator->translate("The email entered is not present in our database")); return $this->redir()->toRoute('admin/default', array('controller' => 'log', 'action' => 'forgotten')); } else { //Check if the user is administrator $accessControlList = $this->getServiceLocator()->get('acl'); $allowed = $accessControlList->isAllowed($user->getRoleName(), 'index'); if (!$allowed) { $this->flashMessenger()->addErrorMessage(sprintf($this->translator->translate("The user with email %s does not have administrative privileges"), $email)); return $this->redir()->toRoute('admin/default', array('controller' => 'log', 'action' => 'forgotten')); } else { //generate token and send a link to the email $stdStrings = $this->getServiceLocator()->get('stdlib-strings'); $token = $stdStrings->randomString(10); $passwordResetsEntity = new PasswordResets($email, $token); //use this request to also delete password requests older than 24 hours $entityManager->getRepository(get_class($passwordResetsEntity))->deleteOldRequests(); $entityManager->persist($passwordResetsEntity); $entityManager->flush(); $uri = $this->getRequest()->getUri(); $renderer = $this->serviceLocator->get('Zend\\View\\Renderer\\RendererInterface'); $basePath = $renderer->basePath('/admin/log/reset'); $baseUrl = sprintf('%s://%s', $uri->getScheme(), $uri->getHost()); $link = $baseUrl . $basePath . '?email=' . urlencode($email) . '&token=' . $token; //send email with the generated password $config = $this->getServiceLocator()->get('config'); $message = new Mail\Message(); $message->setFrom($config['other']['no-reply'])->setTo($email)->setSubject('New password')->setBody(sprintf($this->translator->translate("Dear user,%sFollowing the new password request, here is a link for you to visit in order to create a new password:%s%s"), "\n\n", "\n\n", $link)); $transport = new Mail\Transport\Sendmail(); $transport->send($message); $this->flashMessenger()->addSuccessMessage(sprintf($this->translator->translate("A link was generated and sent to %s"), $email)); return $this->redir()->toRoute('admin/default', array('controller' => 'log', 'action' => 'in')); } } } } return array('form' => $form); }
public function buildForm() { $this->setAttributes(array('id' => 'post-form', 'method' => 'post')); $category = new Element\Select('category'); $category->setLabel('Categoria'); $category->setValueOptions(array_combine($this->categories, $this->categories)); $category->setAttribute('class', 'form-control'); $title = new Element\Text('title'); $title->setLabel('Título'); $title->setAttributes(array('maxlength' => 128, 'class' => 'form-control')); $description = new Element\Textarea('description'); $description->setAttribute('class', 'form-control'); $description->setLabel('Descrição'); $photoFilename = new Element\Url('photo_filename'); $photoFilename->setAttribute('class', 'form-control'); $photoFilename->setLabel('Foto'); $contactName = new Element\Text('contact_name'); $contactName->setAttribute('class', 'form-control'); $contactName->setLabel('Nome completo'); $contactEmail = new Element\Email('contact_email'); $contactEmail->setAttribute('class', 'form-control'); $contactEmail->setLabel('E-mail'); $contactPhone = new Element\Text('contact_phone'); $contactPhone->setAttribute('class', 'form-control'); $contactPhone->setLabel('Contato'); $cityCode = new Element\Select('cityCode'); $cityCode->setAttribute('class', 'form-control'); $cityCode->setValueOptions($this->cities); $cityCode->setLabel('Cidade'); $deleteCode = new Element\Number('delete_code'); $deleteCode->setAttribute('class', 'form-control'); $deleteCode->setLabel('Código de deleção'); $captcha = new Element\Captcha('captcha'); $captchaAdapter = new ImageCaptcha(array('font' => './public/fonts/arial.ttf', 'imgDir' => './public/img/captcha', 'imgUrl' => '/img/captcha')); $captchaAdapter->setWordlen(4); $captcha->setCaptcha($captchaAdapter)->setLabel('Você é um ser humano ou um robô?')->setAttribute('class', 'captchaStyle')->setAttribute('title', 'Você é um ser humano ou um robô?'); /*$captcha = new Element\Captcha('captcha'); $captcha->setCaptcha(new \Zend\Captcha\Dumb()); $captcha->setAttribute('class', 'form-control'); $captcha->setOptions(array('label' => 'Você é um ser humano ou um robô?')); */ $price = new Element\Number('price'); $price->setAttributes(array('class' => 'form-control', 'maxlength' => 12, 'min' => 0, 'max' => '999999999999')); $price->setLabel('Preço'); $dateExpires = new Element\Radio('date_expires'); $dateExpires->setLabel('Expira em (dias)'); $dateExpires->setValueOptions(array_combine($this->dateExpires, $this->dateExpires)); $csrf = new Element\Csrf('security'); $submit = new Element\Submit('submit'); $submit->setAttributes(array('class' => 'btn btn-default', 'value' => 'Enviar formulário')); $this->add($category)->add($title)->add($price)->add($dateExpires)->add($description)->add($photoFilename)->add($contactName)->add($contactEmail)->add($contactPhone)->add($cityCode)->add($deleteCode)->add($captcha)->add($csrf)->add($submit); /* $factory = new \Zend\Form\Factory(); $factory->createForm(array( 'hydrator' => 'Zend\Stdlib\Hydrator\ArraySerializable', 'elements' => array( array( 'name' => 'category', 'type' => 'text', 'options' => array( 'label' => 'Category' ) ), array( 'name' => 'title', 'type' => 'text', 'options' => array( 'label' => 'Title' ) ), ) )); */ }
public function __construct(EntityRepository $repository) { parent::__construct('apply'); $this->filter = new InputFilter(); $primary = new Element\Hidden('primary'); $this->add($primary); $primaryFilter = new Input('primary'); $primaryFilter->getValidatorChain()->attach(new DoctrineValidator\NoObjectExists(array('message' => 'Member already owns an affiliate', 'object_repository' => $repository, 'fields' => 'primary'))); $this->filter->add($primaryFilter); $name = new Element\Text('name'); $name->setAttribute('required', true); $name->setAttribute('placeholder', 'Organization Name'); $this->add($name); $nameFilter = new Input('name'); $nameFilter->setRequired(true); $nameFilter->getFilterChain()->attach(new AppFilter\TitleCase()); $nameFilter->getFilterChain()->attach(new Filter\StringTrim()); $nameFilter->getFilterChain()->attach(new Filter\StripTags()); $nameFilter->getValidatorChain()->attach(new Validator\StringLength(array('max' => 80))); $nameFilter->getValidatorChain()->attach(new DoctrineValidator\NoObjectExists(array('message' => 'Name already in use', 'object_repository' => $repository, 'fields' => 'name'))); $this->filter->add($nameFilter); $street = new Element\Text('street'); $street->setAttribute('required', true); $street->setAttribute('placeholder', 'Street Address'); $this->add($street); $streetFilter = new Input('street'); $streetFilter->setRequired(true); $streetFilter->getFilterChain()->attach(new Filter\StringTrim()); $streetFilter->getFilterChain()->attach(new Filter\StripTags()); $streetFilter->getValidatorChain()->attach(new Validator\StringLength(array('max' => 50))); $this->filter->add($streetFilter); $city = new Element\Text('city'); $city->setAttribute('required', true); $city->setAttribute('placeholder', 'City'); $this->add($city); $cityFilter = new Input('city'); $cityFilter->setRequired(true); $cityFilter->getFilterChain()->attach(new Filter\StringTrim()); $cityFilter->getFilterChain()->attach(new Filter\StripTags()); $cityFilter->getValidatorChain()->attach(new Validator\StringLength(array('max' => 30))); $this->filter->add($cityFilter); $state = new Element\Text('state'); $state->setAttribute('required', true); $state->setAttribute('placeholder', 'State'); $this->add($state); $stateFilter = new Input('state'); $stateFilter->setRequired(true); $stateFilter->getFilterChain()->attach(new Filter\StringTrim()); $stateFilter->getFilterChain()->attach(new Filter\StripTags()); $stateFilter->getFilterChain()->attach(new Filter\StringToUpper()); $stateFilter->getValidatorChain()->attach(new Validator\StringLength(array('min' => 2, 'max' => 2))); $this->filter->add($stateFilter); $postalCode = new Element\Text('postalCode'); $postalCode->setAttribute('required', true); $postalCode->setAttribute('placeholder', 'Postal Code'); $this->add($postalCode); $postalCodeFilter = new Input('postalCode'); $postalCodeFilter->setRequired(true); $postalCodeFilter->getFilterChain()->attach(new Filter\StringTrim()); $postalCodeFilter->getFilterChain()->attach(new Filter\StripTags()); $this->filter->add($postalCodeFilter); $phone = new AppElement\Phone('phone'); $phone->setAttribute('required', true); $phone->setAttribute('placeholder', 'Phone Number'); $this->add($phone); $phoneFilter = new Input('phone'); $phoneFilter->setRequired(true); $this->filter->add($phoneFilter); $email = new Element\Email('email'); $email->setAttribute('required', true); $email->setAttribute('placeholder', 'Email Address'); $this->add($email); $emailFilter = new Input('email'); $emailFilter->setRequired(true); $this->filter->add($emailFilter); $website = new Element\Url('website'); $website->setAttribute('placeholder', 'Website'); $this->add($website); $websiteFilter = new Input('website'); $websiteFilter->setRequired(false); $this->filter->add($websiteFilter); $buttons = new Form('buttons'); $buttons->setOption('twb-layout', 'inline'); $buttons->setAttribute('class', 'form-group'); $submit = new Element\Submit('submit'); $submit->setAttribute('class', 'btn-primary pull-right'); $submit->setOption('glyphicon', 'circle-arrow-up'); $submit->setLabel('Apply'); $buttons->add($submit); $cancel = new Element\Submit('cancel'); $cancel->setAttribute('formnovalidate', true); $cancel->setAttribute('class', 'btn-warning pull-right'); $cancel->setOption('glyphicon', 'ban-circle'); $cancel->setLabel('Cancel'); $buttons->add($cancel); $this->add($buttons); }