Skip to content

Commit

Permalink
Add CI_Cart::get_item() (rel #400)
Browse files Browse the repository at this point in the history
  • Loading branch information
narfbg committed Oct 25, 2012
1 parent 60b9714 commit cdeee66
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 13 deletions.
29 changes: 23 additions & 6 deletions system/libraries/Cart.php
Expand Up @@ -479,18 +479,35 @@ public function contents($newest_first = FALSE)

// --------------------------------------------------------------------

/**
* Get cart item
*
* Returns the details of a specific item in the cart
*
* @param string $row_id
* @return array
*/
public function get_item($row_id)
{
return (in_array($row_id, array('total_items', 'cart_total'), TRUE) OR ! isset($this->_cart_contents[$row_id]))
? FALSE
: $this->_cart_contents[$row_id];
}

// --------------------------------------------------------------------

/**
* Has options
*
* Returns TRUE if the rowid passed to this function correlates to an item
* that has options associated with it.
*
* @param mixed
* @param string $row_id = ''
* @return bool
*/
public function has_options($rowid = '')
public function has_options($row_id = '')
{
return (isset($this->_cart_contents[$rowid]['options']) && count($this->_cart_contents[$rowid]['options']) !== 0);
return (isset($this->_cart_contents[$row_id]['options']) && count($this->_cart_contents[$row_id]['options']) !== 0);
}

// --------------------------------------------------------------------
Expand All @@ -500,12 +517,12 @@ public function has_options($rowid = '')
*
* Returns the an array of options, for a particular product row ID
*
* @param int
* @param string $row_id = ''
* @return array
*/
public function product_options($rowid = '')
public function product_options($row_id = '')
{
return isset($this->_cart_contents[$rowid]['options']) ? $this->_cart_contents[$rowid]['options'] : array();
return isset($this->_cart_contents[$row_id]['options']) ? $this->_cart_contents[$row_id]['options'] : array();
}

// --------------------------------------------------------------------
Expand Down
7 changes: 4 additions & 3 deletions user_guide_src/source/changelog.rst
Expand Up @@ -173,9 +173,10 @@ Release Date: Not Released
- Added *max_filename_increment* config setting.
- Added an "index" parameter to the ``data()`` method.
- :doc:`Cart library <libraries/cart>` changes include:
- It now auto-increments quantity's instead of just resetting it, this is the default behaviour of large e-commerce sites.
- Product Name strictness can be disabled via the Cart Library by switching "$product_name_safe".
- Added function remove() to remove a cart item, updating with quantity of 0 seemed like a hack but has remained to retain compatibility.
- It now auto-increments quantity instead of just resetting it, this is the default behaviour of large e-commerce sites.
- *Product Name* strictness can be disabled by switching the ``$product_name_safe`` property to FALSE.
- Added method ``remove()`` to remove a cart item, updating with quantity of 0 seemed like a hack but has remained to retain compatibility.
- Added method ``get_item()`` to enable retrieving data for a single cart item.
- :doc:`Image Manipulation library <libraries/image_lib>` changes include:
- The initialize() method now only sets existing class properties.
- Added support for 3-length hex color values for *wm_font_color* and *wm_shadow_color* properties, as well as validation for them.
Expand Down
14 changes: 10 additions & 4 deletions user_guide_src/source/libraries/cart.rst
Expand Up @@ -279,16 +279,22 @@ by which this is returned by passing it "true" where the contents will be sorted
from newest to oldest, by leaving this function blank, you'll automatically just get
first added to the basket to last added to the basket.

$this->cart->has_options(rowid);
********************************
$this->cart->get_item($row_id);
*******************************

Returns an array containing data for the item matching the specified row ID,
or FALSE if no such item exists.

$this->cart->has_options($row_id);
**********************************

Returns TRUE (boolean) if a particular row in the cart contains options.
This function is designed to be used in a loop with
$this->cart->contents(), since you must pass the rowid to this function,
as shown in the Displaying the Cart example above.

$this->cart->product_options(rowid);
************************************
$this->cart->product_options($row_id);
**************************************

Returns an array of options for a particular product. This function is
designed to be used in a loop with $this->cart->contents(), since you
Expand Down

0 comments on commit cdeee66

Please sign in to comment.