59 lines
1.3 KiB
PHP
59 lines
1.3 KiB
PHP
<?php defined('SYSPATH') or die('No direct access allowed.');
|
|
|
|
/**
|
|
* This class provides a order cart
|
|
*
|
|
* @package Cart
|
|
* @category Controllers
|
|
* @author Deon George
|
|
* @copyright (c) 2009-2013 Open Source Billing
|
|
* @license http://dev.osbill.net/license.html
|
|
*/
|
|
class Controller_Cart extends Controller_TemplateDefault {
|
|
protected $auth_required = FALSE;
|
|
|
|
/**
|
|
* List the cart contents
|
|
*/
|
|
public function action_index() {
|
|
$co = Cart::instance();
|
|
|
|
// If the cart is empty, we'll return here.
|
|
if (! $co->contents()->count())
|
|
$this->template->content = _('Cart is Empty');
|
|
|
|
else {
|
|
$output = View::factory('cart/view')->set('o',$co);
|
|
|
|
$output .= Form::open('checkout/before');
|
|
$output .= View::factory('cart/payment')->set('o',$co);
|
|
$output .= Form::close();
|
|
|
|
Block::factory()
|
|
->body($output);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Add an item to the cart
|
|
*/
|
|
public function action_add() {
|
|
$co = ORM::factory('Cart');
|
|
|
|
$co->values(Request::current()->post());
|
|
$co->session_id = Session::instance()->id();
|
|
|
|
if (! $this->save($co))
|
|
throw HTTP_Exception::factory(501,_('There was a problem adding the item to the cart.'));
|
|
|
|
HTTP::redirect('cart/index');
|
|
}
|
|
|
|
public function action_empty() {
|
|
Cart::instance()->delete();
|
|
|
|
$this->template->content = _('Cart Emptied');
|
|
}
|
|
}
|
|
?>
|