/** * Sets current inventory product from Request. * * Action: setCurrCat * * @ finish the functions on this page */ function onAction() { global $application; $request = $application->getInstance('Request'); $prod_id = $request->getValueByKey('prod_id'); if ($request->getValueByKey('del_info')) { if ($request->getValueByKey('del_info') == "true") { // $this->pCatalog->setDisplayDeleteInfo(); } } if ($prod_id != NULL) { $this->pCatalog->setCurrentProductID($prod_id); // $product_obj = new CProductInfo($this->pCatalog->getCurrentProductID()); modApiFunc("CProductListFilter", "changeCurrentCategoryId", $product_obj->chooseCategoryID()); } if ($request->getValueByKey('keep_editor_state') === null) { modApiFunc('Session', 'un_set', 'ProductInfoWYSIWYGEditorEnabled'); } }
/** * Adds the product to the cart. */ function onAction() { global $application; $request = $application->getInstance('Request'); if ($request->getValueByKey('returning') == 'yes' && modApiFunc('Session', 'is_Set', 'WishlistData')) { // for returning customers reading the data from the session $data = modApiFunc('Session', 'get', 'WishlistData'); modApiFunc('Session', 'un_Set', 'WishlistData'); } else { $prod_id = $request->getValueByKey('prod_id'); $data = array('parent_entity' => 'product', 'entity_id' => $prod_id, 'options' => $request->getValueByKey('po'), 'qty' => $request->getValueByKey('quantity_in_cart')); // setting qty = 1 if not specified if (!$data['qty'] && $data['qty'] !== 0) { $data['qty'] = 1; } $options_sent = $request->getValueByKey('options_sent'); $data['options_sent'] = $options_sent; if ($data['options'] == null) { $data['options'] = array(); } } // if customer is not logged in keeping the data in session and // force customer to login... if (!modApiFunc('Customer_Account', 'getCurrentSignedCustomer')) { modApiFunc('Session', 'set', 'WishlistData', $data); $request = new Request(); $request->setView(CURRENT_REQUEST_URL); $request->setAction('AddToWishlist'); $request->setKey('returning', 'yes'); modApiFunc('Session', 'set', 'toURLAfterSignIn', $request->getURL()); $request = new Request(); $request->setView('CustomerAccountHome'); $application->redirect($request); return; } $wl_content = modApiFunc('Wishlist', 'getWishlistContent'); if (is_array($wl_content)) { foreach ($wl_content as $wl) { if ($wl['ID'] == $data['entity_id'] && $this->compareOptions($data['options'], $wl['Options'])) { modApiFunc('Wishlist', 'updateWishlistRecord', $wl['wl_id'], $wl['Quantity_In_Cart'] + $data['qty']); $request = new Request(); $request->setView(CURRENT_REQUEST_URL); $application->redirect($request); return; } } } $result = modApiFunc('Cart', 'processPostedProductData', $data, $data['options_sent'], false); if (!$result['is_error']) { if (!empty($result['stock_discarded_by_warning'])) { modApiFunc('Session', 'set', 'StockDiscardedBy', $result['stock_discarded_by_warning']); } modApiFunc('Wishlist', 'addToWishlist', $result['data']); $request = new Request(); $request->setView(CURRENT_REQUEST_URL); $application->redirect($request); } else { if ($result['discard_by'] != 'none') { modApiFunc('Session', 'set', 'OptionsDiscardedBy', $result['discard_by']); } if ($result['stock_discarded_by'] != 'none') { modApiFunc('Session', 'set', 'StockDiscardedBy', $result['stock_discarded_by']); } modApiFunc('Session', 'set', 'sentCombination', $result['data']['options']); $request = new Request(); $request->setView('ProductInfo'); $request->setAction('SetCurrentProduct'); $request->setKey('prod_id', $prod_id); $request->setProductID($prod_id); $p = new CProductInfo($prod_id); $request->setCategoryID($p->chooseCategoryID()); $application->redirect($request); } }
/** * Adds the product to the cart. */ function onAction() { global $application; $request = $application->getInstance('Request'); $msgres = $application->getInstance("MessageResources", "messages"); // checking if wishlist product is being added $wl_id = $request->getValueByKey('wl_id'); if ($wl_id > 0) { $data = modApiFunc('Wishlist', 'getWishlistRecordCartData', $wl_id); if (!$data) { // invalid wishlist record... $request = new Request(); $request->setView('Wishlist'); $application->redirect($request); $this->setStatusError(); $this->setMessage('Invalid wishlist record'); } $options_sent = $data['options_sent']; $prod_id = $data['entity_id']; } else { $prod_id = $request->getValueByKey('prod_id'); $data = array('parent_entity' => 'product', 'entity_id' => $prod_id, 'options' => $request->getValueByKey('po'), 'qty' => $request->getValueByKey('quantity_in_cart'), 'colorname' => $request->getValueByKey('colorname')); $options_sent = $request->getValueByKey('options_sent'); } // setting qty=1 if quantity_in_stock is not specified if (!$data['qty'] && $data['qty'] !== 0) { $data['qty'] = 1; } if ($data['options'] == null) { $data['options'] = array(); } $result = modApiFunc('Cart', 'processPostedProductData', $data, $options_sent); if (!$result['is_error']) { if (!empty($result['stock_discarded_by_warning'])) { modApiFunc('Session', 'set', 'StockDiscardedBy', $result['stock_discarded_by_warning']); } $added = modApiFunc('Cart', 'addToCart', $result['data']); $cc = modApiFunc('Cart', 'getCartContent'); $cartPrice = ''; $cart_id = $prod_id . "_" . modApiFunc("Product_Options", "getCombinationHash", $result['data']['options']); if (!empty($cc)) { foreach ($cc as $product) { if ($product["CartID"] == $cart_id) { $cartPrice = modApiFunc("Localization", "format", $product["CartItemSalePrice"], "currency"); } } } $this->setStatusSuccess(); $p = new CProductInfo($prod_id); $message = array("<h2>" . $msgres->getMessage('CATALOG_PRODUCT_ADDED') . "</h2>" . "<div class='ajax_message_cart_prod_link'><a href='" . $p->getProductInfoLink($prod_id, $p->chooseCategoryID()) . "'>" . $p->getProductTagValue('name') . "</a></div>" . "<div class='ajax_message_cart_prod_qty'>" . $data['qty'] . " " . $msgres->getMessage('CATALOG_X') . " " . $cartPrice . "</div>"); // if a wishlist product is being added... if ($wl_id > 0 && $added) { modApiFunc('Wishlist', 'removeFromWishlist', $wl_id); $message[] = 'This product was removed from your Wishlist'; } $this->setMessage($message); $request = new Request(); $request->setView(CURRENT_REQUEST_URL); $application->redirect($request); } else { $this->setStatusError(); $message = array(); if ($result['discard_by'] != 'none') { modApiFunc('Session', 'set', 'OptionsDiscardedBy', $result['discard_by']); $message[] = $msgres->getMessage($result['discard_by']); } if ($result['stock_discarded_by'] != 'none') { modApiFunc('Session', 'set', 'StockDiscardedBy', $result['stock_discarded_by']); $message[] = $msgres->getMessage($result['stock_discarded_by']); } modApiFunc('Session', 'set', 'sentCombination', $result['data']['options']); $this->setMessage($message); $request = new Request(); $request->setView('ProductInfo'); $request->setAction('SetCurrentProduct'); $request->setKey('prod_id', $prod_id); $request->setProductID($prod_id); $p = new CProductInfo($prod_id); $request->setCategoryID($p->chooseCategoryID()); $application->redirect($request); } }
/** * Generates the link for menu item */ function getMenuItemLink($item) { global $application; $result = ''; switch ($item['item_type']) { case CMS_MENU_ITEM_TYPE_TEXT: $result = ''; break; case CMS_MENU_ITEM_TYPE_URL: case CMS_MENU_ITEM_TYPE_EXTERNAL_URL: $result = $item['item_link']; break; case CMS_MENU_ITEM_TYPE_STATIC_PAGE: loadClass('CCMSPageInfo'); $CMSPage = new CCMSPageInfo($item['item_link']); $result = $CMSPage->getCMSPageTagValue('link', array()); break; case CMS_MENU_ITEM_TYPE_SYSTEM_PAGE: $r = new Request(); $r->setView($application->getViewBySection($item['item_link'])); if (_ml_strtolower($item['item_link']) == 'productlist') { $r->setCategoryID($item['param1']); $r->setAction('SetCurrCat'); $r->setKey('category_id', $item['param1']); } if (_ml_strtolower($item['item_link']) == 'productinfo') { loadClass('CProductInfo'); $pr = new CProductInfo($item['param2']); $item['param1'] = $pr->chooseCategoryID(); $r->setCategoryID($item['param1']); $r->setProductID($item['param2']); $r->setAction('SetCurrentProduct'); $r->setKey('prod_id', $item['param2']); $r->setKey('category_id', $item['param1']); } $result = $r->getURL(); break; } return $result; }