Exemple #1
0
 /**
  * features an advertisement
  * @param $days days to be featured
  * @return void 
  */
 public function to_feature($days = NULL)
 {
     if ($this->loaded()) {
         if (!is_numeric($days)) {
             $plans = Model_Order::get_featured_plans();
             $days = array_keys($plans);
             $days = reset($days);
         }
         $this->featured = Date::unix2mysql(time() + $days * 24 * 60 * 60);
         try {
             $this->save();
         } catch (Exception $e) {
             throw HTTP_Exception::factory(500, $e->getMessage());
         }
     }
 }
 /**
  * Payment deatails and paypal configuration can be configured here
  * @return [view] Renders view with form inputs
  */
 public function action_payment()
 {
     //delete featured plan
     if (is_numeric(Core::get('delete_plan'))) {
         Model_Order::delete_featured_plan(Core::get('delete_plan'));
         $this->redirect(Route::url('oc-panel', array('controller' => 'settings', 'action' => 'payment')));
     }
     Breadcrumbs::add(Breadcrumb::factory()->set_title(__('Payments')));
     $this->template->title = __('Payments');
     // all form config values
     $paymentconf = new Model_Config();
     $config = $paymentconf->where('group_name', '=', 'payment')->find_all();
     // save only changed values
     if ($this->request->post()) {
         if (is_numeric(Core::request('featured_days')) and is_numeric(Core::request('featured_price'))) {
             Model_Order::set_featured_plan(Core::request('featured_days'), Core::request('featured_price'), Core::request('featured_days_key'));
             Alert::set(Alert::SUCCESS, __('Featured plan updated'));
             $this->redirect(Route::url('oc-panel', array('controller' => 'settings', 'action' => 'payment')));
         }
         $validation = Validation::factory($this->request->post())->rule('pay_to_go_on_top', 'not_empty')->rule('pay_to_go_on_top', 'numeric')->rule('stripe_appfee', 'numeric')->rule('stripe_appfee', 'range', array(':value', 0, 100))->rule('to_featured', 'range', array(':value', 0, 1))->rule('to_top', 'range', array(':value', 0, 1))->rule('sandbox', 'range', array(':value', 0, 1))->rule('paypal_seller', 'range', array(':value', 0, 1))->rule('stock', 'range', array(':value', 0, 1))->rule('authorize_sandbox', 'range', array(':value', 0, 1))->rule('stripe_address', 'range', array(':value', 0, 1));
         //not updatable fields
         $do_nothing = array('featured_days', 'pay_to_go_on_feature', 'featured_plans');
         if ($validation->check()) {
             foreach ($config as $c) {
                 $config_res = $this->request->post($c->config_key);
                 if (!in_array($c->config_key, $do_nothing) and $config_res != $c->config_value) {
                     if ($c->config_key == 'pay_to_go_on_top') {
                         $config_res = str_replace(',', '.', $config_res);
                     }
                     $c->config_value = $config_res;
                     try {
                         $c->save();
                     } catch (Exception $e) {
                         throw HTTP_Exception::factory(500, $e->getMessage());
                     }
                 }
             }
         } else {
             $errors = $validation->errors('config');
             foreach ($errors as $error) {
                 Alert::set(Alert::ALERT, $error);
             }
             $this->redirect(Route::url('oc-panel', array('controller' => 'settings', 'action' => 'payment')));
         }
         Alert::set(Alert::SUCCESS, __('Payments Configuration updated'));
         $this->redirect(Route::url('oc-panel', array('controller' => 'settings', 'action' => 'payment')));
     }
     $pages = array('' => __('Deactivated'));
     foreach (Model_Content::get_pages() as $key => $value) {
         $pages[$value->seotitle] = $value->title;
     }
     $this->template->content = View::factory('oc-panel/pages/settings/payment', array('config' => $config, 'pages' => $pages, 'featured_plans' => Model_Order::get_featured_plans()));
 }
        if ($order->id_product == Model_Order::PRODUCT_TO_FEATURED) {
            ?>
                                        <?php 
            echo $order->featured_days;
            ?>
 <?php 
            echo __('Days');
            ?>
                                    <?php 
        }
        ?>
                                    )
                                </em>
                                <div class="dropdown" style="display:inline-block;">
                                <?php 
        if ($order->id_product == Model_Order::PRODUCT_TO_FEATURED and is_array($featured_plans = Model_Order::get_featured_plans()) and count($featured_plans) > 1) {
            ?>
                                    <button class="btn btn-xs btn-info dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
                                        <?php 
            echo __('Change plan');
            ?>
 
                                        <span class="caret"></span>
                                    </button>
                                    <ul class="dropdown-menu">
                                        <?php 
            foreach ($featured_plans as $days => $price) {
                ?>
                                            <?php 
                if ($order->featured_days != $days) {
                    ?>
 /**
  * [action_to_featured] [pay to go in featured]
  *
  */
 public function action_to_featured()
 {
     //check pay to featured top is enabled
     if (core::config('payment.to_featured') == FALSE) {
         throw HTTP_Exception::factory(404, __('Page not found'));
     }
     $id_product = Model_Order::PRODUCT_TO_FEATURED;
     //check ad exists
     $id_ad = $this->request->param('id');
     //how many days
     if (!is_numeric($days = Core::request('featured_days'))) {
         $plans = Model_Order::get_featured_plans();
         $days = array_keys($plans);
         $days = reset($days);
     }
     //get price for the days
     $amount = Model_Order::get_featured_price($days);
     $ad = new Model_Ad($id_ad);
     if ($ad->loaded()) {
         //case when payment is set to 0,gets featured for free...
         if ($amount <= 0) {
             $ad->featured = Date::unix2mysql(time() + $days * 24 * 60 * 60);
             try {
                 $ad->save();
             } catch (Exception $e) {
                 throw HTTP_Exception::factory(500, $e->getMessage());
             }
             $this->redirect(Route::url('list'));
         }
         $currency = core::config('payment.paypal_currency');
         $order = Model_Order::new_order($ad, $ad->user, $id_product, $amount, $currency, NULL, $days);
         // redirect to payment
         $this->redirect(Route::url('default', array('controller' => 'ad', 'action' => 'checkout', 'id' => $order->id_order)));
     } else {
         throw HTTP_Exception::factory(404, __('Page not found'));
     }
 }
                                <em>(<?php 
echo Model_Order::product_desc($order->id_product);
?>
 
                                    <?if ($order->id_product == Model_Order::PRODUCT_TO_FEATURED):?>
                                        <?php 
echo $order->featured_days;
?>
 <?php 
echo __('Days');
?>
                                    <?endif?>
                                    )
                                </em>
                                <div class="dropdown" style="display:inline-block;">
                                <?if ($order->id_product == Model_Order::PRODUCT_TO_FEATURED AND is_array($featured_plans=Model_Order::get_featured_plans()) AND count($featured_plans) > 1):?>
                                    <button class="btn btn-xs btn-info dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-expanded="true">
                                        <?php 
echo __('Change plan');
?>
 
                                        <span class="caret"></span>
                                    </button>
                                    <ul class="dropdown-menu">
                                        <?foreach ($featured_plans as $days => $price):?>
                                            <?if ($order->featured_days != $days):?>
                                                <li>
                                                    <a href="<?php 
echo Route::url('default', array('controller' => 'ad', 'action' => 'checkout', 'id' => $order->id_order));
?>
?featured_days=<?php