Ejemplo n.º 1
0
 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));
 }