/** * Redirects after action. */ function redirect() { global $application; $request = new Request(); $request->setView('EditCategory'); $request->setKey('tree_id', modApiFunc('Request', 'getValueByKey', 'tree_id')); // getting the category name for category tree // Note: assume the data language for the tree page is not changed // otherwise the data language for that page should be set below // Note: Since the redirect is taken place we do not worry about // restoring the language modApiFunc('MultiLang', 'setLanguage', modApiFunc('MultiLang', 'getResourceLanguage')); $catInfo = new CCategoryInfo($this->old_id); $request->setKey('new_name', urlencode($catInfo->getCategoryTagValue('name'))); $request->setKey('old_id', $this->old_id); $application->redirect($request); }
function outputLocationBreadcrumb($parents_list, $links, $view_name = "NavigationBar") { global $application; $CategoryId1Info = new CCategoryInfo(1); $this->CategoryId1Name = $CategoryId1Info->getCategoryTagValue('name'); $retval = ""; $isFirst = 1; $n = sizeof($parents_list); for ($i = 0; $i < $n; $i++) { $value = $parents_list[$i]; $cat = new CCategoryInfo($value["id"]); $name = prepareHTMLDisplay($value["name"]); if ($cat->getCategoryTagValue('RecursiveStatus') == CATEGORY_STATUS_ONLINE) { } else { $name = '<span style="color: rgb(175, 175, 175);">' . $name . '</span>'; } $arr = array("Href" => $this->getLinkToView($value["id"], $view_name, $cat), "Name" => $name, "CategoryId1Name" => prepareHTMLDisplay($this->CategoryId1Name)); if ($n == 1) { $retval .= $this->mTmplFiller->fill("catalog/breadcrumb/", "single.tpl.html", $arr); } else { if ($i == 0) { if ($links) { $retval .= $this->mTmplFiller->fill("catalog/breadcrumb/", "first_link.tpl.html", $arr); } else { $retval .= $this->mTmplFiller->fill("catalog/breadcrumb/", "first.tpl.html", $arr); } } else { if ($i == $n - 1) { $retval .= $this->mTmplFiller->fill("catalog/breadcrumb/", "last.tpl.html", $arr); } else { if ($links) { $retval .= $this->mTmplFiller->fill("catalog/breadcrumb/", "default_link.tpl.html", $arr); } else { $retval .= $this->mTmplFiller->fill("catalog/breadcrumb/", "default.tpl.html", $arr); } } } } } if ($retval == "") { CTrace::wrn(array("CODE" => "CORE_053"), __CLASS__, __FUNCTION__); } return $retval; }
/** * * * Action: Confirm Copy Products. * * @ finish the functions on this page */ function onAction() { global $application; $request = $application->getInstance('Request'); $req = $_POST; $to_categoryval = $req['to_category_id']; $from_category = modApiFunc('CProductListFilter', 'getCurrentCategoryId'); $to_category = explode("|", $to_categoryval); $products_ids = $request->getValueByKey('products_ids'); $products_ids = explode("|", $products_ids); $catsprods = array_combine($products_ids, $to_category); if ($to_category != null and $products_ids != null) { modApiFunc('Catalog', 'copyProducts', $catsprods); $cat_obj = new CCategoryInfo($to_category); modApiFunc('Paginator', 'setPaginatorPageToLast', 'Catalog_ProdsList_' . $to_category, $cat_obj->getCategoryTagValue('productsnumber')); } modApiFunc('CProductListFilter', 'changeCurrentCategoryId', $to_category); $request->setView('ProductList'); $application->redirect($request); }
function output() { global $application; $this->msg_res =& $application->getInstance('MessageResources'); $this->category_id = modApiFunc('CProductListFilter', 'getCurrentCategoryId'); loadClass('CCategoryInfo'); $cat_info = new CCategoryInfo($this->category_id); $this->_Current_Category =& $cat_info; $i_w = $cat_info->getCategoryTagValue('SmallImageWidth'); $i_h = $cat_info->getCategoryTagValue('SmallImageHeight'); $i_url = $cat_info->getCategoryTagValue('SmallImageSrc'); if ($i_url == '' || $i_w == 0 || $i_h == 0) { $i_w = 100; $i_h = 100; $i_url = $this->no_image_url; } $cat_info->setAdditionalCategoryTag('AttributeImageWidth', $i_w); $cat_info->setAdditionalCategoryTag('AttributeImageHeight', $i_h); $cat_info->setAdditionalCategoryTag('AttributeImageURL', $i_url); $cat_info->setAdditionalCategoryTag('CategoryStatus', $cat_info->getCategoryTagValue('status', CATEGORYINFO_LOCALIZED_DATA)); $application->registerAttributes($cat_info->getAdditionalCategoryTagList()); $application->registerAttributes(array('CategoryProducts', 'CategoryProductsRec', 'FeaturedProducts', 'BestsellersProducts')); return modApiFunc('TmplFiller', 'fill', "catalog/category_review/", "review.tpl.html", array()); }
/** * Returns the Catalog Category Info view. * * @ finish the functions on this page */ function output() { global $application; $obj =& $application->getInstance('MessageResources'); $CatID = modApiFunc('Catalog', 'getEditableCategoryID'); if ($CatID == NULL) { } else { $catInfo = new CCategoryInfo($CatID); $request = new Request(); $request->setView('EditCategory'); $request->setAction('SetEditableCategory'); $request->setKey('category_id', $CatID); $catInfo->setAdditionalCategoryTag('EditCatHref', $request->getURL()); $cat_status = ""; switch ($catInfo->getCategoryTagValue("Status")) { case CATEGORY_STATUS_ONLINE: $cat_status = getMsg('SYS', 'CAT_STATUS_ONLINE'); break; case CATEGORY_STATUS_OFFLINE: $cat_status = getMsg('SYS', 'CAT_STATUS_OFFLINE'); break; default: //: report error $cat_status = ""; } $this->_Current_Category = $catInfo; $this->_Current_Category->setAdditionalCategoryTag('ShowProductsRecursivelyStatus', $catInfo->getCategoryTagValue('showproductsrecursivelystatus', CATEGORYINFO_LOCALIZED_DATA)); $this->_Current_Category->setAdditionalCategoryTag('CategoryStatus', $catInfo->getCategoryTagValue('status', CATEGORYINFO_LOCALIZED_DATA)); $this->_Current_Category->setAdditionalCategoryTag('AttributeImageWidth', $catInfo->getCategoryTagValue('LargeImageWidth')); $this->_Current_Category->setAdditionalCategoryTag('AttributeImageHeight', $catInfo->getCategoryTagValue('LargeImageHeight')); $this->_Current_Category->setAdditionalCategoryTag('AttributeImageURL', $catInfo->getCategoryTagValue('LargeImageSrc')); $this->_Current_Category->setAdditionalCategoryTag('largeimage', $obj->getMessage(new ActionMessage('INFO_CTGR_NO_IMG'))); $application->registerAttributes($this->_Current_Category->getAdditionalCategoryTagList()); $application->registerAttributes(array('SmallImage')); if ($this->_Current_Category->getCategoryTagValue('largeimagesrc') != '') { $this->_Current_Category->setAdditionalCategoryTag('largeimage', modApiFunc('TmplFiller', 'fill', "catalog/view_cat/", "attr-large-image.tpl.html", array())); } $retval = modApiFunc('TmplFiller', 'fill', "catalog/view_cat/", "list.tpl.html", array()); } return $retval; }
function getTag($tag) { global $application; $value = null; switch ($tag) { case 'Local_AddPromoCode_URL': $request = new Request(); $request->setView(CURRENT_REQUEST_URL); $request->setAction('AddPromoCode'); #$request->setKey( 'promo_code', '' ); $value = $request->getURL(); break; case 'Local_AddPromoCode_Error': $AddPromoCodeError = modApiFunc("PromoCodes", "getAddPromoCodeError"); modApiFunc("PromoCodes", "setAddPromoCodeError", ""); if (!empty($AddPromoCodeError)) { $value = getMsg('SYS', $AddPromoCodeError); } else { $value = ""; } break; case 'Local_RemovePromoCode_URL': $request = new Request(); $request->setView(CURRENT_REQUEST_URL); $request->setAction('RemovePromoCode'); $value = $request->getURL(); break; case 'Local_PromoCode': $value = ''; if ($this->pc_info !== false) { $value = prepareHTMLDisplay($this->pc_info["promo_code"]); } break; case 'Local_PromoCodeDiscountedItemsListForCZ': $value = ''; if ($this->pc_info !== false && $this->applicable === true) { $home_present = false; $cat_names = array(); $prod_names = array(); if ($this->pc_info['cats'] != null) { $cats = explode('|', $this->pc_info['cats']); foreach ($cats as $cid) { $cat_obj = new CCategoryInfo($cid); if ($cat_obj->_fCategoryIDIsIncorrect === true) { continue; } // Home category present, we do not need anything else if ($cid == 1) { $home_present = true; $cat_names = array(); $cat_names[] = cz_getMsg('PROMOCODE_HOME_CATEGORY_NAME_SUBST'); break; } else { $cat_names[] = $cat_obj->getCategoryTagValue('Name'); } } } if ($this->pc_info['prods'] != null && !$home_present) { $prods = explode('|', $this->pc_info['prods']); foreach ($prods as $pid) { $obj = new CProductInfo($pid); if (!$obj->isProductIdCorrect()) { continue; } $prod_names[] = $obj->getProductTagValue('Name'); } } if ($cat_names) { $cat_names_str = implode(', ', $cat_names); if ($home_present) { $value .= $cat_names_str; } else { if (count($cat_names) == 1) { $value .= cz_getMsg("PROMOCODE_CATEGORY_LABEL") . $cat_names_str; } else { $value .= cz_getMsg("PROMOCODE_CATEGORIES_LABEL") . $cat_names_str; } } if ($prod_names) { $value .= cz_getMsg("PROMOCODE_AND_LABEL"); } } if ($prod_names) { $prod_names_str = implode(', ', $prod_names); if (count($prod_names) == 1) { $value .= cz_getMsg("PROMOCODE_PRODUCT_LABEL") . $prod_names_str; } else { $value .= cz_getMsg("PROMOCODE_PRODUCTS_LABEL") . $prod_names_str; } } } break; case 'Local_PromoCodeMinSubtotal': $value = ''; if ($this->pc_info !== false && $this->applicable === true && $this->pc_info["min_subtotal"] != 0) { $min_subtotal = modApiFunc("Localization", "currency_format", $this->pc_info["min_subtotal"]); $value = str_replace('{MINSUBTOTAL}', $min_subtotal, cz_getMsg('PROMOCODE_MINSUBTOTAL_NEEDED')); } break; case 'Local_PromoCodeDiscount': $value = ''; if ($this->pc_info !== false && $this->applicable === true) { $o_subtotal = modApiFunc("Checkout", "getOrderPrice", "Subtotal", modApiFunc("Localization", "getMainStoreCurrency")); $value = modApiFunc("Localization", "currency_format", modApiFunc("PromoCodes", "getPromoCodeDiscount", $o_subtotal, modApiFunc("PromoCodes", "getPromoCodeId"), array())); } if ($value == "") { $value = modApiFunc("Localization", "currency_format", PRICE_N_A); } break; case 'Local_PromoCodeDiscountText': // "10%" "$2" , // . $value = ""; if ($this->pc_info !== false && $this->applicable === true) { switch ($this->pc_info["discount_cost_type_id"]) { case 1: $value = modApiFunc("Localization", "currency_format", $this->pc_info["discount_cost"]); break; case 2: $value = modApiFunc("Localization", "num_format", $this->pc_info["discount_cost"]) . "%"; break; default: //: report error. exit(1); } } break; case 'Local_PromoCodeStrictCartAttitude': $value = ''; if ($this->pc_info && $this->pc_info['strict_cart'] == PROMO_CODE_STRICT_CART) { // get product IDs and their categories' IDs $prod = $coupon_cart = array(); $promo_codes = $application->getInstance('PromoCodes'); $order_cart = modApiFunc("Cart", "getCartContentExt"); foreach ($order_cart as $product) { $coupon_cart[] = array('id' => $product["ID"], 'cat' => $product['CategoryID'], 'total' => $product['TotalExcludingTaxes']); } // coupon not applicable due to not meeting coupon conditions if (false == $promo_codes->isPromoCodeAreaApplicable($this->pc_info, $coupon_cart)) { $value = cz_getMsg('PROMOCODE_STRICT_CART_NEEDED'); } } break; case 'Local_PromoCodeShippingAttitude': $value = ''; if ($this->pc_info !== false && $this->applicable === true) { if ($this->pc_info['free_shipping'] == PROMO_CODE_FORBIDS_FREE_SHIPPING) { $value = cz_getMsg('PROMOCODE_FREE_SHIPPING_FORBIDDEN'); } else { if ($this->pc_info['free_shipping'] == PROMO_CODE_GRANTS_FREE_SHIPPING) { $value = cz_getMsg('PROMOCODE_FREE_SHIPPING_GRANTED'); } } } break; case 'Local_PromoCodeHandlingAttitude': $value = ''; if ($this->pc_info !== false && $this->applicable === true) { if ($this->pc_info['free_handling'] == PROMO_CODE_FORBIDS_FREE_HANDLING) { $value = cz_getMsg('PROMOCODE_FREE_HANDLING_FORBIDDEN'); } else { if ($this->pc_info['free_handling'] == PROMO_CODE_GRANTS_FREE_HANDLING) { $value = cz_getMsg('PROMOCODE_FREE_HANDLING_GRANTED'); } } } break; case 'Local_PromoCodeGlobalDiscountIgnored': $value = ''; if ($this->pc_info !== false && $this->applicable === true) { if ($this->pc_info['b_ignore_other_discounts'] == 1) { // ignore global discount $value = cz_getMsg('PROMOCODE_GLOBAL_DISCOUNT_IGNORED'); } } break; default: $value = NULL; break; } return $value; }
/** * Gets search filter data text */ function getSearchFilterDataText() { // if empty filter -> returns empty string if (empty($this->psf_filter)) { return ''; } $output = array(); if ($this->psf_filter['pattern'] != '') { $line = getMsg('CTL', 'PSF_SEARCH_PATTERN') . ' '; if ($this->psf_filter['pattern_type'] == 'all') { $line .= '<b>' . getMsg('CTL', 'PSF_ALL_WORDS') . '</b>'; } elseif ($this->psf_filter['pattern_type'] == 'any') { $line .= '<b>' . getMsg('CTL', 'PSF_ANY_WORD') . '</b>'; } else { $line .= '<b>' . getMsg('CTL', 'PSF_EXACT_PHRASE') . '</b>'; } $line .= ' ' . getMsg('CTL', 'PSF_OF') . ' '; $line .= '<b>"' . prepareHTMLDisplay($this->psf_filter['pattern']) . '"</b>'; $line .= ' ' . getMsg('CTL', 'PSF_IN') . ' '; $in_fields = array(); if (isset($this->psf_filter['in_name'])) { $in_fields[] = '<b>' . getMsg('SYS', 'PRD_NAME_NAME') . '</b>'; } if (isset($this->psf_filter['in_id'])) { $in_fields[] = '<b>' . getMsg('SYS', 'PRD_ID_NAME') . '</b>'; } if (isset($this->psf_filter['in_sku'])) { $in_fields[] = '<b>' . getMsg('SYS', 'PRD_SKU_NAME') . '</b>'; } if (isset($this->psf_filter['in_descr'])) { $in_fields[] = '<b>' . getMsg('SYS', 'PRD_SHRDESCR_NAME') . '</b>'; } if (isset($this->psf_filter['in_det_descr'])) { $in_fields[] = '<b>' . getMsg('SYS', 'PRD_DETDESCR_NAME') . '</b>'; } if (isset($this->psf_filter['in_title'])) { $in_fields[] = '<b>' . getMsg('SYS', 'PRD_PAGETTL_NAME') . '</b>'; } if (isset($this->psf_filter['in_keywords'])) { $in_fields[] = '<b>' . getMsg('SYS', 'PRD_METAKWRD_NAME') . '</b>'; } if (isset($this->psf_filter['in_meta_descr'])) { $in_fields[] = '<b>' . getMsg('SYS', 'PRD_METADESCR_NAME') . '</b>'; } $line .= join(', ', $in_fields); $output[] = $line; } if ($this->psf_filter['category'] > 0) { $line = getMsg('CTL', 'PSF_CATEGORY') . ' '; $tmp_info = new CCategoryInfo($this->psf_filter['category']); $line .= '<b>' . $tmp_info->getCategoryTagValue('name') . '</b>'; if (isset($this->psf_filter['recursive'])) { $line .= ' (' . _ml_strtolower(getMsg('CTL', 'PSF_INCLUDE_SUBCATEGORIES')) . ')'; } $output[] = $line; } if ($this->psf_filter['manufacturer'] > 0) { $line = getMsg('CTL', 'PSF_MANUFACTURER') . ' '; $tmp_info = modApiFunc('Manufacturers', 'getManufacturerInfo', $this->psf_filter['manufacturer']); $line .= '<b>' . $tmp_info['manufacturer_name'] . '</b>'; $output[] = $line; } if ($this->psf_filter['price_min'] !== '' || $this->psf_filter['price_max'] !== '') { $line = getMsg('CTL', 'PSF_PRICE_RANGE') . ' '; $line .= $this->psf_filter['price_min'] !== '' ? '<b>' . $this->psf_filter['price_min'] . '</b>' : '<b>0.00</b>'; $line .= $this->psf_filter['price_max'] !== '' ? ' - <b>' . $this->psf_filter['price_max'] . '</b>' : '<b>+</b>'; $output[] = $line; } // request to reset filter $request = new Request(); $request->setView('ProductList'); $request->setAction('SetCurrCat'); $request->setKey('category_id', 1); $request = $request->getURL(); $output[] = '<input type="hidden" value="0" id="categoryval_id" /><a href="javascript:gotoCategory();" style="font-weight:bold; font-size:11px; color:#000; font-family:Tahoma,sans-serif; text-decoration:underline;">' . getMsg('CTL', 'PSF_RESET_FILTER') . '</a>'; $output[] = ''; // $output[] = '<div class="button button_10em" title="' . getMsg('CTL', 'PSF_RESET_FILTER') . '" onclick="javascript:go(\'' . $request . '\');">' . getMsg('CTL', 'PSF_RESET_FILTER') . '</div>'; if (count($this->psf_filter['result']) > 1) { $output[] = getMsg('CTL', 'PSF_SHOWING') . ' ' . '<b>' . $this->From . '</b> - <b>' . $this->To . '</b>' . ' ' . getMsg('CTL', 'PSF_OF') . ' <b>' . (count($this->psf_filter['result']) - 1) . '</b>'; } else { $output[] = getMsg('CTL', 'PSF_NO_PRODUCTS_FOUND'); } if (@$this->psf_filter['overflow']) { $output[] = ' <span style="color: red">' . getMsg('CTL', 'PSF_OVERFLOWTEXT') . '</span>'; } return join('<br />', $output); }
/** * Returns the Catalog Navigator Tree view. */ function outputCatalogNavigatorTree($start_with_category_id = null) { global $application; static $level_offset = null; $tree = ""; $categories_list = null; if ($start_with_category_id == null) { $start_with_category_id = $this->settings['TREE_ROOT']; // array of online direct subcategories only if ($this->settings['DISPLAY_ROOT'] == 'YES') { $categories_list = array(new CCategoryInfo($start_with_category_id)); } } // array of online direct subcategories only if ($categories_list === null) { $categories_list = modApiFunc("Catalog", "getDirectSubcategoriesListFull", $start_with_category_id, true); } // necessary tests before output $start_category_obj = new CCategoryInfo($start_with_category_id); if ($categories_list == null || $start_category_obj->getCategoryTagValue('recursivestatus', CATEGORYINFO_NOT_LOCALIZED_DATA) == CATEGORY_STATUS_OFFLINE) { return ""; } // prepare plain-list of all parent IDs of the __current__ category $parents = modApiFunc('Catalog', 'getCategoryFullPath', $this->cat_id); $parent_ids = array(); foreach ($parents as $catInfo) { $parent_ids[] = $catInfo['id']; } foreach ($categories_list as $categoryInfo) { $_selected = in_array($categoryInfo->getCategoryTagValue('id'), $parent_ids); $_selected_current = $this->cat_id == $categoryInfo->getCategoryTagValue('id'); $_without_nested = !$categoryInfo->getCategoryTagValue('hasonlinesubcategories'); // select template if ($_selected && $_without_nested) { $template = $_selected_current || $this->settings['SELECTED'] == 'CATEGORY_PATH' ? 'CategoryDefaultSelectedWithoutNested' : 'CategoryDefaultWithoutNested'; } else { if ($_selected && !$_without_nested) { $template = $_selected_current || $this->settings['SELECTED'] == 'CATEGORY_PATH' ? 'CategoryDefaultSelected' : 'CategoryDefault'; } else { if (!$_selected && $_without_nested) { $template = 'CategoryDefaultWithoutNested'; } else { if ($this->settings['EXPAND_TREE_NODES'] == 'ALL') { $template = 'CategoryDefault'; } else { $template = 'CategoryDefaultWithoutNested'; } } } } // // $this->_Current_Category, // . // . $_prev__this_Current_Category = $this->_Current_Category; $this->_Current_Category = $categoryInfo; $tree .= $this->mTmplFiller->fill($template); $this->_Current_Category = $_prev__this_Current_Category; } return $tree; }
function displayDefaultCategories() { $categories = modApiFunc("Catalog", "getSubcategoriesFullListWithParent", 1, false); $_Cat_Info = new CCategoryInfo(1); // Category Info get for Home Category $countOfSubCategory = $_Cat_Info->getCategoryTagValue('subcategoriesnumber') + 1; //Count total number of item in the subcategory of Home category $slicedcats = array_slice($categories, 0, $countOfSubCategory); $count = count($categories); $value = ""; foreach ($slicedcats as $category) { if ($category['level'] == 0 || $category['level'] == 1) { $catid = $category["id"]; $catmainlink = getCategoryLink($catid); $cathomelink = getPageURL('Categories {1}'); $value .= "<li>"; if ($catid == 1) { $value .= "<a href='{$cathomelink}' class='parent'><span>" . $category['name'] . "</span></a>\n\t\t\t\t\t <div><ul>"; } else { $value .= "<a href='{$catmainlink}' class='parent'><span>" . $category['name'] . "</span></a>\n\t\t\t\t\t <div><ul>"; } if (modApiFunc("Catalog", "hasOnlineSubcategories", $category['id']) && $category['level'] > 0) { $value .= $this->defaultsubcatlevel($category['id'], 1); // Looping for subcategories } $value .= "</ul></div></li>"; } } return $value; }
/** * Processes tags in the templates for the given view. * * @return string tag value, if tag has been processed. NULL, otherwise. */ function getTag($tag, $arg_list = array()) { global $application; $value = null; switch ($tag) { case 'Local_Columns': $value = $this->columns; break; case 'Local_ProductNumberToDisplay': $value = count($this->__product_list_to_display); break; case 'Local_NextProductIdToDisplay': if ($this->__index >= count($this->__product_list_to_display)) { $value = null; } else { $value = $this->__product_list_to_display[$this->__index]['product_id']; $this->__index++; } $this->__current_product_id_to_display = $value; break; case 'Local_CurrentProductIdToDisplay': return $this->__current_product_id_to_display; break; case 'Local_ProductDetails': $pid = $this->getTag('Local_NextProductIdToDisplay'); if ($pid == null) { $value = ''; } else { $value = $this->renderProductInfo($pid); } break; # override the PaginatorRows tag behavior # override the PaginatorRows tag behavior case 'PaginatorLine': $value = getPaginatorLine($this->__paginator_name, 'ProductList', $this->__filter_hash); // break; # override the PaginatorRows tag behavior # override the PaginatorRows tag behavior case 'PaginatorDropdown': $value = getPaginatorDropdown($this->__paginator_name, 'ProductList'); break; case 'CategoryName': $catobj = new CCategoryInfo($this->__tag_settings->filter->category_id); $value = $catobj->getCategoryTagValue('name'); break; case 'ProductOptionsForm': $value = getOptionsChoice($this->_Product_Info->getProductTagValue('ID')); break; case 'RelatedProducts': $value = getRelatedProducts($this->_Product_Info->getProductTagValue('ID')); break; case 'Local_JSfuncProductFormSubmit': $value = "<script type=\"text/javascript\">" . "function ProductFormSubmit_" . $this->_Product_Info->getProductTagValue('ID') . "()" . "{" . " document.forms['ProductForm_" . $this->_Product_Info->getProductTagValue('ID') . "'].submit();" . "};" . "</script>"; break; case 'Local_ProductFormStart': $value = '<form action="cart.php" name="ProductForm_' . $this->_Product_Info->getProductTagValue('ID') . '" id="ProductForm_' . $this->_Product_Info->getProductTagValue('ID') . '" method="post"> <input type="hidden" name="asc_action" value="AddToCart" /> <input type="hidden" name="prod_id" value="' . $this->_Product_Info->getProductTagValue('ID') . '" /> <script type="text/javascript"> function ProductFormSubmit_' . $this->_Product_Info->getProductTagValue('ID') . '() { document.forms[\'ProductForm_' . $this->_Product_Info->getProductTagValue('ID') . '\'].submit(); }; </script>'; break; case 'Local_ProductFormEnd': $value = '</form>'; break; case 'Local_ProductAddToCart': $value = 'javascript: ProductFormSubmit_' . $this->_Product_Info->getProductTagValue('ID') . '();'; break; case 'ProductDetailedImages': $value = getProductDetailedImages($this->_Product_Info->getProductTagValue('ID')); break; case 'Local_FormQuantityFieldName': $value = 'quantity_in_cart'; break; case 'Local_ProductQuantityOptions': $qty_in_cart = modApiFunc("Cart", "getProductQuantity", $this->_Product_Info->getProductTagValue('ID')); $value = modApiFunc("Cart", "getProductQuantityOptions", $qty_in_cart, $this->_Product_Info->getProductTagValue('ID')); break; default: list($entity, $tag) = getTagName($tag); if ($entity == 'product' && is_object($this->_Product_Info)) { $value = $this->_Product_Info->getProductTagValue($tag); } break; } return $value; }
function out_CategoriesList() { $html_code = ''; if (!empty($this->affected['cats'])) { global $application; foreach ($this->affected['cats'] as $cat_id) { $obj = new CCategoryInfo($cat_id); // CCategoryInfo::isCategoryIdCorrect() does not exist if ($obj->_fCategoryIDIsIncorrect !== true) { $tags = array('CategoryID' => $cat_id, 'CategoryName' => $obj->getCategoryTagValue('Name')); $this->_Template_Contents = $tags; $application->registerAttributes($this->_Template_Contents); $this->mTmplFiller =& $application->getInstance('TmplFiller'); $html_code .= $this->mTmplFiller->fill("shipping_cost_calculator/edit_fs_rule_area/", "cat_item.tpl.html", array()); } } } return $html_code; }
/** * Returns the Subcategories Listing view. * * @return string the Subcategories List view. */ function output() { global $application; #define whether to output the view or not if ($this->NoView) { $application->outputTagErrors(true, "SubcategoryList", "Errors"); return ""; } else { $application->outputTagErrors(true, "SubcategoryList", "Warnings"); } $this->templateFiller = new TemplateFiller(); /* Check whether the parameter specified by the category id was passed to the Subcategories() block. In such case the Subcategories block will output specified category info, inpsite of the current category. */ $CatID = @func_get_arg(0); $CurrentCatalogCategoryID = null; if ($CatID === false) { $CatID = modApiFunc('CProductListFilter', 'getCurrentCategoryId'); } else { /* The category id was passed to the Subcategories block. In order all the Category* tags output values for the specified category, but not for the current one, to the template-container, override the current category value in the Catalog module. Return the current value after outputting the Subcategories block. */ $CurrentCatalogCategoryID = modApiFunc('CProductListFilter', 'getCurrentCategoryId'); modApiFunc('CProductListFilter', 'disableSynchronization'); modApiFunc('CProductListFilter', 'changeCurrentCategoryId', $CatID); } $this->_CatID = $CatID; $this->template = $application->getBlockTemplate('Subcategories'); $this->templateFiller->setTemplate($this->template); $this->subcatList = modApiFunc("Catalog", "getDirectSubcategoriesListFull", $this->_CatID, true); $cat = new CCategoryInfo($CatID); if (NULL == $this->subcatList || $cat->getCategoryTagValue('RecursiveStatus') != CATEGORY_STATUS_ONLINE) { $retval = $this->templateFiller->fill("ContainerEmpty"); } else { $retval = $this->templateFiller->fill("Container"); } /* Restore the current category value in the Catalog module, if it has been overridden by the time of outputting the Subcategories block. */ if ($CurrentCatalogCategoryID !== null) { modApiFunc('CProductListFilter', 'changeCurrentCategoryId', $CurrentCatalogCategoryID); modApiFunc('CProductListFilter', 'enableSynchronization'); } return $retval; }
/** * * * @return */ function initDBFormData() { $cid = modApiFunc('Catalog', 'getEditableCategoryID'); $catInfo = new CCategoryInfo($cid); $this->ViewState = array("hasCloseScript" => "false", "SmallImage" => basename($catInfo->getCategoryTagValue('smallimagesrc')), "LargeImage" => basename($catInfo->getCategoryTagValue('largeimagesrc'))); $this->POST = array("CategoryID" => $cid, "CategoryStatus" => $catInfo->getCategoryTagValue('status'), "ImageDescriptionText" => $catInfo->getCategoryTagValue('imagealttext'), "ParentCategoryID" => modApiFunc('CProductListFilter', 'getCurrentCategoryId'), "PageTitleText" => $catInfo->getCategoryTagValue('pagetitle'), "SubcategoryText" => $catInfo->getCategoryTagValue('name'), "DescriptionText" => $catInfo->getCategoryTagValue('description'), "MetaKeywordsText" => $catInfo->getCategoryTagValue('metakeywords'), "MetaDescriptionText" => $catInfo->getCategoryTagValue('metadescription'), "CategoryShowProductsRecursivelyStatus" => $catInfo->getCategoryTagValue('showproductsrecursivelystatus'), "SEO_URL_prefix" => urldecode($catInfo->getCategoryTagValue('seo_url_prefix'))); // $this->ViewState = // array( // "hasCloseScript" => "false", // "SmallImage" => ($catInfo['SmallImageShowThatFileIsNotUploaded'] == '1') ? "" : basename($catInfo['SmallImageSrc']), // "LargeImage" => ($catInfo['LargeImageShowThatFileIsNotUploaded'] == '1') ? "" : basename($catInfo['LargeImageSrc']) // ); // $this->POST = // array( // "CategoryID" => $cid, // "CategoryStatus" => $catInfo['Status'], // "ImageDescriptionText" => $catInfo['ImageAltText'], // "ParentCategoryID" => modApiFunc("Catalog", "getCurrentCategoryID"), // "PageTitleText" => $catInfo['PageTitle'], // "SubcategoryText" => $catInfo['Name'], // "DescriptionText" => $catInfo['Description'], // "MetaKeywordsText" => $catInfo['MetaKeywords'], // "MetaDescriptionText" => $catInfo['MetaDescription'], // "CategoryShowProductsRecursivelyStatus" => $catInfo['ShowProductsRecursivelyStatus'], // "SEO_URL_prefix" => $catInfo['SEO_URL_prefix'] // ); }
function _addSEO($m) { global $application; if (strstr($this->_fProcessedURL['query'], '%cSEO%')) { $catObj = new CCategoryInfo($m[1]); $seo_prefix = $catObj->getCategoryTagValue('seo_url_prefix'); if (!empty($seo_prefix)) { $seo_prefix .= '-'; } else { $this->_fProcessedURL['query'] = preg_replace('/([a-zA-Z0-9_\\-\\%\\+]+)lng[A-Z]{2}-([a-zA-Z0-9_\\-\\%\\+\\.]+)/', '${1}${2}', $this->_fProcessedURL['query']); } $this->_fProcessedURL['query'] = str_replace('%cSEO%', $seo_prefix, $this->_fProcessedURL['query']); return; } if (strstr($this->_fProcessedURL['query'], '%pSEO%')) { $catObj = new CProductInfo($m[1]); $seo_prefix = $catObj->getProductTagValue('SEOPrefix'); if (!empty($seo_prefix)) { $seo_prefix .= '-'; } else { $this->_fProcessedURL['query'] = preg_replace('/([a-zA-Z0-9_\\-\\%\\+]+)lng[A-Z]{2}-([a-zA-Z0-9_\\-\\%\\+\\.]+)/', '${1}${2}', $this->_fProcessedURL['query']); } $this->_fProcessedURL['query'] = str_replace('%pSEO%', $seo_prefix, $this->_fProcessedURL['query']); return; } }
/** * @ describe the function ProductList->getTag. */ function getTag($tag) { global $application; $value = null; $CatID = modApiFunc('CProductListFilter', 'getCurrentCategoryId'); loadClass('CCategoryInfo'); $currCategoryObj = new CCategoryInfo($CatID); $OptionsListHiddenArray = array(); loadCoreFile('html_form.php'); $HtmlForm = new HtmlForm(); switch ($tag) { case 'HiddenArrayViewState': $value = $this->outputViewState(); break; case 'HiddenFieldAction': $value = $this->getHiddenFiled(); break; case 'OptionsList': $value = $this->outputOptionsList($CatID, $OptionsListHiddenArray); break; case 'CategoryName': $value = $currCategoryObj->getCategoryTagValue('name'); break; case 'OptionsListHidden': $OptionsListHiddenArray = $this->getOptionsListHiddenArray($CatID); $value = implode('|', $OptionsListHiddenArray); break; case 'SaveCatHref': $value = $this->outputSaveSortHref(); break; case 'Sort_Object_CP': $value = $this->outputSortObject('CP'); break; case 'Sort_Object_CS': $value = $this->outputSortObject('CS'); break; case 'Sort_Object_P': $value = $this->outputSortObject('P'); break; case 'Sort_Object_S': $value = $this->outputSortObject('S'); break; case 'Sort_Subject': $value = $this->outputSortSubject(); break; case 'Breadcrumb': $obj =& $application->getInstance('Breadcrumb'); $value = $obj->output(false); break; } return $value; }
/** * Moves the category. * * @author Alexander Girin * @param integer $newParentCatId the new category id, * to which the category is moved * @param integer $cid the moved category id * @return */ function moveCategory($newParentCatId, $cid) { global $application; $NewParentCatInfo = $this->fetchCategoryInfo($newParentCatId); $CatInfo = $this->fetchCategoryInfo($cid); $catobj = new CCategoryInfo($cid); $CurrentParentCatInfo = $catobj->getCategoryTagValue('parentid'); if ($NewParentCatInfo == FALSE || $CatInfo == FALSE) { return; } $tables = $this->getTables(); $c = $tables['categories']['columns']; # categories is a database table $deltaLevel = -($CatInfo['level'] - 1) + $NewParentCatInfo['level']; if ($NewParentCatInfo['left'] < $CatInfo['left'] && $NewParentCatInfo['right'] > $CatInfo['right'] && $NewParentCatInfo['level'] < $CatInfo['level'] - 1) { $query = new DB_Update('categories'); $query->addUpdateExpression($c['level'], $query->fIf($c['left'] . ' ' . DB_BETWEEN . ' ' . $CatInfo['left'] . ' ' . DB_AND . ' ' . $CatInfo['right'], $c['level'] . sprintf('%+d', $deltaLevel), $c['level'])); $query->addUpdateExpression($c['right'], $query->fIf($c['right'] . ' ' . DB_BETWEEN . ' ' . ($CatInfo['right'] + 1) . ' ' . DB_AND . ' ' . ($NewParentCatInfo['right'] - 1), $c['right'] . '-' . ($CatInfo['right'] - $CatInfo['left'] + 1), $query->fIf($c['left'] . ' ' . DB_BETWEEN . ' ' . $CatInfo['left'] . ' ' . DB_AND . ' ' . $CatInfo['right'], $c['right'] . '+' . (($NewParentCatInfo['right'] - $CatInfo['right'] - $CatInfo['level'] + $NewParentCatInfo['level']) / 2 * 2 + $CatInfo['level'] - $NewParentCatInfo['level'] - 1), $c['right']))); $query->addUpdateExpression($c['left'], $query->fIf($c['left'] . ' ' . DB_BETWEEN . ' ' . ($CatInfo['right'] + 1) . ' ' . DB_AND . ' ' . ($NewParentCatInfo['right'] - 1), $c['left'] . '-' . ($CatInfo['right'] - $CatInfo['left'] + 1), $query->fIf($c['left'] . ' ' . DB_BETWEEN . ' ' . $CatInfo['left'] . ' ' . DB_AND . ' ' . $CatInfo['right'], $c['left'] . '+' . (($NewParentCatInfo['right'] - $CatInfo['right'] - $CatInfo['level'] + $NewParentCatInfo['level']) / 2 * 2 + $CatInfo['level'] - $NewParentCatInfo['level'] - 1), $c['left']))); $query->WhereField($c['left'], DB_BETWEEN, "'" . ($NewParentCatInfo['left'] + 1) . "'" . ' ' . DB_AND . " '" . ($NewParentCatInfo['right'] - 1) . "'"); $application->db->getDB_Result($query); } elseif ($NewParentCatInfo['left'] < $CatInfo['left']) { $query = new DB_Update('categories'); $query->addUpdateExpression($c['level'], $query->fIf($c['left'] . ' ' . DB_BETWEEN . ' ' . $CatInfo['left'] . ' ' . DB_AND . ' ' . $CatInfo['right'], $c['level'] . sprintf('%+d', $deltaLevel), $c['level'])); $query->addUpdateExpression($c['left'], $query->fIf($c['left'] . ' ' . DB_BETWEEN . ' ' . $NewParentCatInfo['right'] . ' ' . DB_AND . ' ' . ($CatInfo['left'] - 1), $c['left'] . '+' . ($CatInfo['right'] - $CatInfo['left'] + 1), $query->fIf($c['left'] . ' ' . DB_BETWEEN . ' ' . $CatInfo['left'] . ' ' . DB_AND . ' ' . $CatInfo['right'], $c['left'] . '-' . ($CatInfo['left'] - $NewParentCatInfo['right']), $c['left']))); $query->addUpdateExpression($c['right'], $query->fIf($c['right'] . ' ' . DB_BETWEEN . ' ' . $NewParentCatInfo['right'] . ' ' . DB_AND . ' ' . $CatInfo['left'], $c['right'] . '+' . ($CatInfo['right'] - $CatInfo['left'] + 1), $query->fIf($c['right'] . ' ' . DB_BETWEEN . ' ' . $CatInfo['left'] . ' ' . DB_AND . ' ' . $CatInfo['right'], $c['right'] . '-' . ($CatInfo['left'] - $NewParentCatInfo['right']), $c['right']))); $query->WhereField($c['left'], DB_BETWEEN, "'" . $NewParentCatInfo['left'] . "'" . ' ' . DB_AND . " '" . $CatInfo['right'] . "'"); $query->WhereOR(); $query->WhereField($c['right'], DB_BETWEEN, "'" . $NewParentCatInfo['left'] . "'" . ' ' . DB_AND . " '" . $CatInfo['right'] . "'"); $application->db->getDB_Result($query); } else { $query = new DB_Update('categories'); $query->addUpdateExpression($c['level'], $query->fIf($c['left'] . ' ' . DB_BETWEEN . ' ' . $CatInfo['left'] . ' ' . DB_AND . ' ' . $CatInfo['right'], $c['level'] . sprintf('%+d', $deltaLevel), $c['level'])); $query->addUpdateExpression($c['left'], $query->fIf($c['left'] . ' ' . DB_BETWEEN . ' ' . $CatInfo['right'] . ' ' . DB_AND . ' ' . $NewParentCatInfo['right'], $c['left'] . '-' . ($CatInfo['right'] - $CatInfo['left'] + 1), $query->fIf($c['left'] . ' ' . DB_BETWEEN . ' ' . $CatInfo['left'] . ' ' . DB_AND . ' ' . $CatInfo['right'], $c['left'] . '+' . ($NewParentCatInfo['right'] - $CatInfo['right'] - 1), $c['left']))); $query->addUpdateExpression($c['right'], $query->fIf($c['right'] . ' ' . DB_BETWEEN . ' ' . ($CatInfo['right'] + 1) . ' ' . DB_AND . ' ' . ($NewParentCatInfo['right'] - 1), $c['right'] . '-' . ($CatInfo['right'] - $CatInfo['left'] + 1), $query->fIf($c['right'] . ' ' . DB_BETWEEN . ' ' . $CatInfo['left'] . ' ' . DB_AND . ' ' . $CatInfo['right'], $c['right'] . '+' . ($NewParentCatInfo['right'] - $CatInfo['right'] - 1), $c['right']))); $query->WhereField($c['left'], DB_BETWEEN, "'" . $CatInfo['left'] . "'" . ' ' . DB_AND . " '" . $NewParentCatInfo['right'] . "'"); $query->WhereOR(); $query->WhereField($c['right'], DB_BETWEEN, "'" . $CatInfo['left'] . "'" . ' ' . DB_AND . " '" . $NewParentCatInfo['right'] . "'"); $application->db->getDB_Result($query); } modApiFunc('EventsManager', 'throwEvent', 'CategoryMoved', array('OLD_PARENT_CATEGORY_ID' => $CurrentParentCatInfo, 'NEW_PARENT_CATEGORY_ID' => $newParentCatId, 'CATEGORY_ID_LIST' => $cid)); }
function outputMoveObject() { global $application; $obj =& $application->getInstance('MessageResources'); $cat = new CCategoryInfo(modApiFunc('Catalog', 'getEditableCategoryID')); return $obj->getMessage(new ActionMessage('MOVE_CTGR_HEADER')) . ' ' . $cat->getCategoryTagValue('Name'); }
/** * Returns the HTML code of the deleted object list. * * @return HTML code */ function outputListItems($CatID) { global $application; $catitems = ''; /* Get a list of all subcategories without paginator. */ $SubcategoriesFullList = modApiFunc('Catalog', 'getSubcategoriesFullListWithParent', $CatID); /* Look through the list of categories and: - save each of them in the array of the $this->CatsId ID category, - get a product list in each category, without paginator, i.e. the whole list - save each of them in the array of the $this->ProdsId ID of each product - generate HTML to output one category */ $i = 0; foreach ($SubcategoriesFullList as $catInfo) { /* This array of the categories ID will be outputted in the form of the hidden field. These very categories will be deleted from the catalog. */ array_push($this->CatsId, $catInfo['id']); /* Execute a query for optimization. */ $result = modApiFunc('Catalog', 'selectCatgoryProducts', $catInfo['id']); foreach ($result as $productid) { /* This array of the products ID will be outputted in the form of the hidden field. These very products will be deleted from the catalog. */ array_push($this->ProdsId, $productid['id']); } /* HTML */ $categoryInfo = new CCategoryInfo($catInfo['id']); $ProductsCountTotal = $categoryInfo->getCategoryTagValue("productsnumberrecursively"); $ProductsCountInCat = $categoryInfo->getCategoryTagValue("productsnumber"); $full_subcat_path_arr = modApiFunc('Catalog', 'getCategoryFullPath', $catInfo['id']); $categoryInfo->setAdditionalCategoryTag('N', $i + 1); $categoryInfo->setAdditionalCategoryTag('Category_Full_Name', $this->outputLocationBreadcrumb($full_subcat_path_arr, false)); $categoryInfo->setAdditionalCategoryTag('Products_Count_In_Cat', $ProductsCountInCat); $categoryInfo->setAdditionalCategoryTag('Products_Count_Total', $ProductsCountTotal); $this->_Current_Category = $categoryInfo; $application->registerAttributes($this->_Current_Category->getAdditionalCategoryTagList()); $catitems .= modApiFunc('TmplFiller', 'fill', "catalog/del_cat/", "list_item.tpl.html", array()); $i++; } return $catitems; }
function outputFsRuleEffectiveAreaDetails($affected, $cat_num, $prod_num) { global $application; if ($cat_num == 0 && $prod_num == 0) { return ''; } $cat_list = array(); $cat_str = ''; if ($cat_num != 0) { loadClass("CCategoryInfo"); foreach ($affected['cats'] as $cat) { $obj = new CCategoryInfo($cat); // CCategoryInfo::isCategoryIdCorrect() does not exist if ($obj->_fCategoryIDIsIncorrect !== true) { $cat_list[] = $obj->getCategoryTagValue('Name'); } } $cat_str = implode('<br />', $cat_list); } $prod_list = array(); $prod_str = ''; if ($prod_num != 0) { loadClass("CProductInfo"); foreach ($affected['prods'] as $prod) { $obj = new CProductInfo($prod); if ($obj->isProductIdCorrect()) { $prod_list[] = $obj->getProductTagValue('Name'); } } $prod_str = implode('<br />', $prod_list); } $this->_Template_Contents = array("CategoriesAffectedList" => $cat_str, "ProductsAffectedList" => $prod_str); $application->registerAttributes($this->_Template_Contents); return $this->mTmplFiller->fill("shipping_cost_calculator/edit_fs_rule/", "fs_rule_effective_area_details.tpl.html", array()); }
/** * Returns the Product Listing view. * * @return string the Products List view. */ function output() { global $application; #define whether to output the view or not if ($this->NoView) { $application->outputTagErrors(true, __CLASS__, "Errors"); return ""; } else { $application->outputTagErrors(true, __CLASS__, "Warnings"); } // . $in_param = @func_get_arg(0); // - CProductListTagSettings, if (_is_a($in_param, 'CProductListTagSettings')) { $this->pl_tag_settings = $in_param; } else { // CProductListTagSettings $this->pl_tag_settings = new CProductListTagSettings(); // , if ($in_param === false || $in_param === null) { $this->pl_tag_settings->filter = modApiFunc('CProductListFilter', 'getProductListParamsObject'); // (default ) // - $this->pl_tag_settings->filter->use_paginator = true; } else { // , CProductListTagSettings, // Category Id, $category_id_to_read_from = $in_param; if (modApiFunc('Catalog', 'isCorrectCategoryId', $category_id_to_read_from)) { // , Show products from all subcategories $this->pl_tag_settings->product_list_filter_object->disableSynchronization(); $this->pl_tag_settings->product_list_filter_object->changeCurrentCategoryId($category_id_to_read_from); $this->pl_tag_settings->updateFilterParams(); } } } // $this->pagParam = $this->pl_tag_settings->filter->category_id; $category = new CCategoryInfo($this->pagParam); $category_status = $category->getCategoryTagValue('status'); if ($category_status == CATEGORY_STATUS_OFFLINE) { $request = new Request(); $request->setView('Index'); $application->redirect($request); return; } $this->pagName = modApiFunc('CProductListFilter', 'getMnfPaginatorName'); if (!$this->pagName) { $this->pagName = "Catalog_ProdsList_" . $this->pl_tag_settings->filter->category_id; } modAPIFunc('paginator', 'setCurrentPaginatorName', $this->getPagName()); // $this->registerAttributes(); $this->templateFiller = new TemplateFiller(); $this->templateFiller->setTemplate($this->pl_tag_settings->getTemplate()); $this->_product_form_action = getpageurl('CartContent'); $cols = @func_get_arg(1); if ($cols !== false && is_numeric($cols)) { $this->columns = $cols; } else { $this->columns = intval($application->getBlockOption($this->pl_tag_settings->getTemplate(), "Columns")); } // $this->pl = $this->getPL(); if (NULL == $this->pl) { $retval = $this->templateFiller->fill("ContainerEmpty"); } else { $retval = $this->templateFiller->fill("Container"); } return $retval; }