/** * We save the chosen value for the products per page in the customer's * configuration object here and redirect to the last view. * * @param SS_HTTPRequest $data contains the frameworks form data * @param Form $form not used * @param array $formData contains the modules form data * * @return void * * @author Sebastian Diel <*****@*****.**>, * Sascha Koehler <*****@*****.**> * @since 15.11.2014 */ public function submitSuccess($data, $form, $formData) { $backLink = $this->controller->Link(); $member = SilvercartCustomer::currentUser(); $product = singleton('SilvercartProduct'); $sortableFrontendFields = $product->sortableFrontendFields(); $sortableFrontendFieldValues = array_keys($sortableFrontendFields); $sortOrder = $sortableFrontendFieldValues[$data['SortOrder']]; SilvercartProduct::setDefaultSort($sortOrder); if (!$member) { $member = SilvercartCustomer::createAnonymousCustomer(); } if ($member) { $member->getSilvercartCustomerConfig()->productsPerPage = $data['productsPerPage']; $member->getSilvercartCustomerConfig()->write(); } if (isset($formData['backLink'])) { $backLink = $formData['backLink']; } $this->controller->redirect($backLink, 302); }
/** * Removes a product out of the cart. * * @param array $data Data to use to identify the position. * * @return bool * * @author Sebastian Diel <*****@*****.**> * @since 15.11.2014 */ public static function removeProduct($data) { $error = true; $member = SilvercartCustomer::currentUser(); if (!$member) { $member = SilvercartCustomer::createAnonymousCustomer(); } $overwriteRemoveProduct = SilvercartPlugin::call($member->getCart(), 'overwriteRemoveProduct', array($data), false, 'boolean'); if ($overwriteRemoveProduct) { $error = false; } elseif ($member instanceof Member) { $cart = $member->getCart(); $position = $cart->SilvercartShoppingCartPositions()->find('SilvercartProductID', $data['productID']); if ($position instanceof SilvercartShoppingCartPosition) { $position->delete(); $error = false; } } return !$error; }