function contact () { if ($_GET['sent']) { return $this->page('contact', array('sent' => True)); } $f = new Form(); $f->add_fields(array( 'name' => new CharField('Name', array('length' => 100)), 'email' => new CharField('E-mail', array('length' => 100)), 'message' => new TextField('Message'), )); $context = array( 'contact_form' => $f, ); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $f->input($_POST); if ( !($_POST['name'] && $_POST['email'] && $_POST['message']) ) { $context['error'] = 'All fields are required. Please complete the form.'; } elseif (!validate_email($_POST['email'])) { $context['error'] = 'Invalid e-mail address.'; } else { // Get e-mail address from the Settings app $to = Frix::app('settings')->get('contact_email'); // Send the e-mail $ok = send_mail('Contact', $f->get_message(), $f->get_email(), $to); // Error sending the message? if (!$ok) { $context['error'] = 'Couldn\'t send message, please try again later.'; } else { redir('./?sent=1'); } } } return $this->page('contact', $context); }