Exemplo n.º 1
0
 public function action_add_gift()
 {
     $view = View::factory('bookmarklet/add_gift');
     $view->url = @$_GET['u'];
     $view->categories = ORM::factory('category')->order_by('name', 'asc')->find_all()->as_array('id', 'name');
     $view->lists = $this->me('owner')->lists->order_by('updated', 'desc')->find_all()->as_array('id', 'name');
     $view->errors = array();
     if ($_POST) {
         if (!arr::get($_POST, 'list_id')) {
             $view->errors = 'Please select a list';
         } else {
             $list = new Model_List((int) arr::get($_POST, 'list_id'));
             if ($list->owner->id != $this->me()->id) {
                 Request::current()->redirect('user/noaccess');
             }
             if (arr::get($_POST, 'name') && arr::get($_POST, 'category_id')) {
                 $gift = new Model_Gift();
                 $gift->list_id = $list->id;
                 $gift->name = arr::get($_POST, 'name');
                 $gift->price = arr::get($_POST, 'price');
                 $gift->url = arr::get($_POST, 'url');
                 $gift->category_id = arr::get($_POST, 'category_id');
                 $gift->details = arr::get($_POST, 'details');
                 $gift->save();
                 Message::add('success', 'Your gift has been added');
                 Request::current()->redirect('bookmarklet/added/' . $gift->id);
             }
             if (!arr::get($_POST, 'name')) {
                 $view->errors['name'] = Kohana::message('gift', 'title-required');
             }
             if (!arr::get($_POST, 'category_id')) {
                 $view->errors['cat'] = 'Please select a category';
             }
         }
     }
     $this->template->content = $view;
 }
Exemplo n.º 2
0
 public function giftAction()
 {
     if ($this->_request->isPost()) {
         $data = $this->_request->getParams();
         unset($data["action"]);
         unset($data["controller"]);
         unset($data["module"]);
         if (trim($data["coupon"]) == "") {
             unset($data["coupon"]);
         }
         $data["user"] = $this->admin->{"username"};
         $modelUser = new Model_User();
         $allUser = $modelUser->listAllId();
         $modelGift = new Model_Gift();
         foreach ($allUser as $u) {
             $data["user_recieve_id"] = $u["user_id"];
             $modelGift->save($data);
         }
     }
 }
Exemplo n.º 3
0
 private function reserve_items(View &$view)
 {
     if (!arr::get($_POST, 'reserve')) {
         $view->errors = 'Please select some gifts to reserve';
         return;
     }
     $reserved = 0;
     foreach (arr::get($_POST, 'reserve') as $gift_id) {
         // TODO: check gift is on a list you're allowed to access
         // TOOD: check gift has not been reserved by someone else
         // add this gift to me
         $me = new Model_Owner($this->me()->id);
         $gift = new Model_Gift((int) $gift_id);
         $gift->reserver_id = $me;
         $gift->save();
         // this should work
         //$gift->add('reserver', $me);
         //$me->add('reservations', $gift);
         $reserved++;
     }
     Message::add('success', __('Reserved ' . $reserved . ' gift(s).'));
     Request::current()->redirect('gift/shopping');
 }
Exemplo n.º 4
0
 public function action_prices()
 {
     // update multiple gift prices
     if (empty($_POST['price']) || !is_array($_POST['price'])) {
         Message::add('danger', __('No prices to update.'));
         Request::current()->redirect('gift/shopping');
     }
     foreach ($_POST['price'] as $gift_id => $price) {
         $gift = new Model_Gift((int) $gift_id);
         if (!$gift->loaded() || $gift->reserver_id != $this->me()->id || $gift->reserver_id != $gift->buyer_id) {
             Message::add('danger', __('You have not bought this gift.'));
             Request::current()->redirect('');
         }
         $gift->bought_price = (double) $price;
         $gift->save();
     }
     Message::add('success', __('Successfully updated gift prices.'));
     Request::current()->redirect('gift/shopping');
 }