* @author Matthew Turnbull */ /** * Required classes */ GalleryCoreApi::requireOnce('modules/checkout/classes/CheckoutHelper.class'); /** * This controller will handle the addition of an item to the cart * * @package Checkout * @subpackage UserInterface */ class AddToCartController extends GalleryController { /** * @see GalleryController::handleRequest() */ function handleRequest($form) { global $gallery; $itemId = GalleryUtilities::getRequestVariables('itemId'); list ($ret, $item) = GalleryCoreApi::loadEntitiesById($itemId); if ($ret) { return array($ret->wrap(__FILE__, __LINE__), null); } /* Figure out what ids we care about */ if ($item->getCanContainChildren()) { list ($ret, $ids) = GalleryCoreApi::fetchChildDataItemIds($item); if ($ret) { return array($ret->wrap(__FILE__, __LINE__), null); } } else { $ids = array($item->getId()); } $ret = CheckoutHelper::addItemsToCart($ids); if ($ret) { return array($ret->wrap(__FILE__, __LINE__), null); } /* Prepare our results */ list ($ret, $cartRedirect) = GalleryCoreApi::getPluginParameter( 'module', 'checkout', 'cartredirect'); if ($ret) { return array($ret->wrap(__FILE__, __LINE__), null); } $returnUrl = GalleryUtilities::getRequestVariables('return'); if ( $cartRedirect == 1 ) { $results['redirect']['view'] = 'checkout.SelectProducts'; $results['status'] = array( 'returnUrl' => $returnUrl ); } else { $results['redirect']['href'] = $returnUrl; $results['status'] = array( 'checkoutSuccess' => true ); } $results['error'] = array(); return array(null, $results); } } ?>