id = is_null($id) ? Session::instance()->id() : $id; } public static function instance($id=NULL) { return new Cart($id); } /** * Return a list of items in the cart */ public function contents() { return ORM::factory('Cart') ->where('session_id','=',$this->id) ->find_all(); } public function delete() { foreach (ORM::factory('Cart')->where('session_id','=',$this->id)->find_all() as $co) $co->delete(); } public function get($mid,$item) { return ORM::factory('Cart') ->where('session_id','=',$this->id) ->and_where('module_id','=',$mid) ->and_where('module_item','=',$item) ->find_all(); } public function id() { return $this->id; } public function total($format=FALSE) { $total = 0; foreach ($this->contents() as $cio) $total += $cio->item()->t; return $format ? Currency::display($total) : $total; } /** * Print an HTML cart list * * @param bool $detail List a detailed cart or a summary cart */ public function cart_block() { // @todo To implement. return ''; // If the cart is empty, we'll return here. if (! count($this->contents())) return 'The cart is empty.'; Style::add(array( 'type'=>'file', 'data'=>'css/cart_blocklist.css', )); $output = '
%s %s | ', Form::button('checkout','Checkout',array('type' => 'submit')), Form::button('empty','Empty',array('type' => 'submit'))); $output .= '