/** * * Show/handle feedback form */ public function showFeedback() { $form = new Form(); $inputName = new InputText('name'); $inputName->addValidator(new Validator()); $form->addElement($inputName, 'Naam (verplicht)'); $inputEmail = new InputText('email'); $inputEmail->addValidator(new EmailValidator(false)); $form->addElement($inputEmail, 'E-mailadres (niet verplicht)'); $inputMessage = new TextArea('comment'); $inputMessage->addValidator(new LengthValidator(true, 20, 1000)); $form->addElement($inputMessage, 'Feedback (verplicht)'); $this->assign('form', $form); $this->template = '/feedback/feedback.form.tpl'; // Validate if this form has just been posted if ($form->isPosted()) { $form->validate(); if ($form->getErrors()) { $this->assign('hasErrors', true); $this->assign('errors', $form->getErrors()); } else { // Save feedback $oFeedback = new Feedback(); $oFeedback->name = htmlentities($inputName->getValue()); $oFeedback->email = htmlentities($inputEmail->getValue()); $oFeedback->message = htmlentities($inputMessage->getValue()); $oFeedback->ip = $_SERVER['REMOTE_ADDR']; $oFeedback->save(); $this->assign('feedback', $oFeedback); $this->template = '/feedback/feedback.confirm.tpl'; } } $this->assignSettings(); $this->smarty->display('templates' . $this->template); }