Example #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));
 }
Example #2
0
 protected function errors_extract(ORM_Validation_Exception $e)
 {
     $errors = $e->errors('');
     if (!empty($errors['_files'])) {
         $errors = array_merge($errors, $errors['_files']);
         unset($errors['_files']);
     }
     if (!empty($errors['_external'])) {
         $errors = array_merge($errors, $errors['_external']);
         unset($errors['_external']);
     }
     return $errors;
 }
Example #3
0
 /**
  * It will display the form to create a new AD
  */
 public function action_create()
 {
     die;
     // To store any form errors
     $errors = array();
     // Start session
     $session = Session::instance();
     // Set default discount code
     $discount_code = Arr::get($_POST, 'discount_code', Arr::get($session->get('temp_ad'), 'discount_code'));
     if (!isset($this->config['paypal'][$discount_code])) {
         $discount_code = null;
     }
     // Make sure this is a POST request
     if ($this->request->method() == 'POST') {
         // Deletes session data
         $session->delete('temp_ad');
         // validates form
         $ad = ORM::factory('ad');
         $ad->set_fields($_POST);
         $ad->company_logo = arr::get($_FILES, 'company_logo');
         // Check if form is valid
         if ($ad->validation()->check()) {
             $ad->company_logo = $this->save_image($_FILES['company_logo']);
             $session->set('temp_ad', array('title' => $ad->title, 'description' => $ad->description, 'budget' => $ad->budget, 'category_id' => $ad->category_id, 'jobtype_id' => $ad->jobtype_id, 'contact' => $ad->contact, 'telecommute' => $ad->telecommute, 'location' => $ad->location, 'highlight' => $ad->highlight, 'private_company' => arr::get($_POST, 'private_company', 0), 'company_logo' => $ad->company_logo, 'company_name' => $ad->company_name, 'company_url' => $ad->company_url, 'company_address' => $ad->company_address, 'email' => $ad->email, 'jobboard_id' => 1, 'discount_code' => $ad->discount_code));
             // Redirects user to the preview
             $this->request->redirect('/ads/preview');
         } else {
             // If form did not pass, get errors
             $e = new ORM_Validation_Exception('ad', $ad->validation());
             $errors = $e->errors('models');
         }
     }
     $this->template->scripts = array('media/js/tiny_mce/jquery.tinymce.js', 'media/js/create.js');
     $this->template->title = __('Create Ad (Step 1) - gowork@');
     $this->template->content = View::factory('ads/create', array('categories' => array_merge(array('--'), ORM::factory('category')->find_all()->as_array('id', 'name')), 'jobtypes' => array_merge(array('--'), ORM::factory('jobtype')->find_all()->as_array('id', 'name')), 'errors' => $errors, 'temp_ad' => $session->get('temp_ad'), 'price_highlight' => $this->config['paypal'][$discount_code]['price_highlight']));
 }
Example #4
0
 /**
  * Shows the payment form
  */
 public function action_home()
 {
     // To store any form errors
     $errors = array();
     // Check for a valid AD session form
     $session = Session::instance();
     $temp_ad = $session->get('temp_ad');
     // Redirects user to the create form if temp ad was not found
     if (!$temp_ad) {
         $this->request->redirect('/ads/create');
     }
     $amount = $this->config['ad']['price_base'];
     if (1 == $temp_ad['highlight']) {
         $amount += $this->config['ad']['price_highlight'];
     }
     // Make sure this is a POST request
     if ($this->request->method() == 'POST') {
         // Get required parameters from the web form for the request
         $fields['paymentType'] = urlencode('Sale');
         $fields['amount'] = $this->config['ad']['price_base'];
         $fields['amount'] += $amount;
         $fields['currencyCode'] = 'USD';
         $fields['firstName'] = urlencode(arr::get($_POST, 'firstName'));
         $fields['lastName'] = urlencode(arr::get($_POST, 'lastName'));
         $fields['creditCardType'] = urlencode(arr::get($_POST, 'creditCardType'));
         $fields['creditCardNumber'] = urlencode(arr::get($_POST, 'creditCardNumber'));
         $fields['expDateMonth'] = urlencode(arr::get($_POST, 'expDateMonth'));
         $fields['expDateYear'] = urlencode(arr::get($_POST, 'expDateYear'));
         $fields['cvv2Number'] = urlencode(arr::get($_POST, 'cvv2Number'));
         $fields['address1'] = urlencode(arr::get($_POST, 'address1'));
         $fields['city'] = urlencode(arr::get($_POST, 'city'));
         $fields['state'] = urlencode(arr::get($_POST, 'state'));
         $fields['zip'] = urlencode(arr::get($_POST, 'zip'));
         $fields['country'] = urlencode(arr::get($_POST, 'country'));
         // validates fields
         $validation = Validation::factory($fields);
         $payment = new Model_Payment();
         $rules = $payment->rules();
         $validation->rules('paymentType', $rules['paymentType'])->rules('amount', $rules['amount'])->rules('currencyCode', $rules['currencyCode'])->rules('firstName', $rules['firstName'])->rules('lastName', $rules['lastName'])->rules('creditCardType', $rules['creditCardType'])->rules('creditCardNumber', $rules['creditCardNumber'])->rules('expDateMonth', $rules['expDateMonth'])->rules('expDateYear', $rules['expDateYear'])->rules('cvv2Number', $rules['cvv2Number'])->rules('address1', $rules['address1'])->rules('city', $rules['city'])->rules('state', $rules['state'])->rules('zip', $rules['zip'])->rules('country', $rules['country']);
         if ($validation->check()) {
             // Data seems good, try to send ti to paypal
             $result = $payment->transaction($fields);
             if ($result) {
                 // Adds AD to DB
                 $ad = ORM::factory('ad');
                 $ad->set_fields($temp_ad);
                 $ad->active = 1;
                 // Ugly ugly hack !
                 $ad->_valid = TRUE;
                 $ad->save();
                 // Deleted session
                 $session->delete('temp_ad');
                 // Create temp session value
                 $session->set('ad_created_id', $ad->id);
                 // Send email to client
                 $this->request->redirect('/payment/complete');
             } else {
                 $errors['paypal'] = $payment->resArray['L_LONGMESSAGE0'];
             }
         } else {
             // If form did not pass, get errors
             $e = new ORM_Validation_Exception('payment', $validation);
             $errors = $e->errors('models');
         }
     }
     // Fixed arrays
     $creditCardTypes = array('Visa' => 'Visa', 'MasterCard' => 'MasterCard', 'Discover' => 'Discover', 'Amex' => 'Amex');
     // Months
     $expDateMonths = array('01' => '01', '02' => '02', '03' => '03', '04' => '04', '05' => '05', '06' => '06', '07' => '07', '08' => '08', '09' => '09', '10' => '10', '11' => '11', '12' => '12');
     // Years
     $expDateYears = array();
     for ($i = date('Y'); $i <= (int) date('Y') + 10; $i++) {
         $expDateYears[$i] = $i;
     }
     $this->template->scripts = array('media/js/payment.js');
     // Show view
     $this->template->title = __('Purchase and complete (Final step)');
     $this->template->content = View::factory('payment/purchase', array('creditCardTypes' => $creditCardTypes, 'expDateMonths' => $expDateMonths, 'expDateYears' => $expDateYears, 'countries' => $this->country_list(), 'errors' => $errors, 'temp_payment' => $_POST, 'amount' => $amount));
 }
Example #5
0
 /**
  * Set validation errors.
  *
  * @param ORM_Validation_Exception|Validation $validation
  * @param string $file File or directory to error messages.
  * @return mixed
  */
 public static function validation($validation, $file = 'models')
 {
     $messages = $validation->errors($file);
     self::$_data[Messages::VALIDATION] = !empty(self::$_data[Messages::VALIDATION]) ? Arr::merge(self::$_data[Messages::VALIDATION], $messages) : $messages;
 }