public function action_home($page = null) { // To store any form errors $errors = array(); // Store success message $session = Session::instance(); $success_message = null; if ($session->get('success_message')) { $success_message = $session->get('success_message'); $session->delete('success_message'); } $this->template->scripts = array('media/js/contact.js'); // Make sure this is a POST request if ($this->request->method() == 'POST') { // Get required parameters from the web form for the request $fields = array(); $fields['name'] = urlencode(arr::get($_POST, 'name')); $fields['company'] = urlencode(arr::get($_POST, 'company')); $fields['email'] = arr::get($_POST, 'email'); $fields['website'] = arr::get($_POST, 'website'); $fields['subject'] = urlencode(arr::get($_POST, 'subject')); $fields['message'] = urlencode(arr::get($_POST, 'message')); // validates fields $validation = Validation::factory($fields); $contact = new Model_Contact(); $rules = $contact->rules(); $validation->rules('name', $rules['name'])->rules('company', $rules['company'])->rules('email', $rules['email'])->rules('website', $rules['website'])->rules('subject', $rules['subject'])->rules('message', $rules['message']); if ($validation->check()) { // Send email to admin $template = View::factory('emails/contact', array('name' => $fields['name'], 'company' => $fields['company'], 'email' => $fields['email'], 'website' => $fields['website'], 'subject' => $fields['subject'], 'message' => $fields['message']))->render(); Email::send($this->config['global']['email_info'], $fields['email'], $fields['subject'], $template, TRUE); // Redirect user $session->set('success_message', "Thank you. Your message was successfully sent."); $this->request->redirect('/contact'); } else { // If form did not pass, get errors $e = new ORM_Validation_Exception('payment', $validation); $errors = $e->errors('models'); } } $this->template->title = __("Contact Us - gowork@"); $this->template->content = View::factory("static/contact_us", array('errors' => $errors, 'success_message' => $success_message)); }