} else { $navigatorHtml = GetNavigatorHtml(_getUrlToNavigate($categoryID), CONF_PRODUCTS_PER_PAGE, 'prdSearchProductByTemplate', $callBackParam, $products, $offset, $count); $navigatorHtml = strtr($navigatorHtml, array("&offset=0" => "", "&offset=0" => "")); } $show_comparison = $category["allow_products_comparison"]; $cc_products = count($products); for ($i = 0; $i < $cc_products; $i++) { $products[$i]["allow_products_comparison"] = $show_comparison; } if (CONF_PRODUCT_SORT) { _sortSetting($smarty, _getUrlToSort($categoryID)); } if (CONF_SHOW_PARENCAT) { $smarty->assign("catrescur", getContentCatResc($categoryID)); } $smarty->assign("subcategories_to_be_shown", catGetSubCategoriesSingleLayer($categoryID)); $smarty->assign("categorylinkscat", getContentCat($categoryID)); //calculate a path to the category $smarty->assign("product_category_path", catCalculatePathToCategory($categoryID)); $smarty->assign("show_comparison", $show_comparison); $smarty->assign("catalog_navigator", $navigatorHtml); $smarty->assign("products_to_show", $products); $smarty->assign("products_to_show_counter", count($products)); if (isset($_GET["advanced_search_in_category"])) { $smarty->assign("products_to_showc", count($products)); } else { if ($category["show_subcategories_products"]) { $smarty->assign("products_to_showc", $category["products_count"]); } else { $smarty->assign("products_to_showc", catGetCategoryProductCount($categoryID, true)); }
/** * counting number of selected products in category and subcategories * @param integer $_CategoryID - category id */ function countSelectedProductsInCat($_CategoryID, &$VisibleCategories) { $_FlagChecked = isset($_SESSION['selectedProducts'][$_CategoryID]) ? 1 : $_SESSION['checkedCategories'][$_CategoryID]; $_FlagExpanded = isset($_SESSION['explortExpandedIDs'][$_CategoryID]) ? $_SESSION['explortExpandedIDs'][$_CategoryID] : 0; $ProductsCounter = 0; $_t = 0; $_FlagHandler = '0.5'; $_TestingCategory = 6; $Debug = 0; if ($_FlagChecked && !$_FlagExpanded) { $_FlagHandler = '1.5'; if (isset($_SESSION['selectedProducts'][$_CategoryID])) { $_FlagHandler = 1; $ProductsCounter += $_SESSION['selectedProductsIncSub'][$_CategoryID]; } else { $_FlagHandler = 2; $ProductsCounter += $VisibleCategories[$_CategoryID]['products_count'] + (isset($_SESSION['selectedProducts'][$_CategoryID]) ? count($_SESSION['selectedProducts'][$_CategoryID]) - $VisibleCategories[$_CategoryID]['products_count'] : 0); } } elseif ($_FlagChecked && $_FlagExpanded) { $_FlagHandler = 3; $ProductsCounter += isset($_SESSION['selectedProducts'][$_CategoryID]) ? count($_SESSION['selectedProducts'][$_CategoryID]) : $VisibleCategories[$_CategoryID]['products_count_category']; $Subs = catGetSubCategoriesSingleLayer($_CategoryID); $i = 0; $alength = count($Subs); for (; $i < $alength; $i++) { $ProductsCounter += countSelectedProductsInCat($Subs[$i]['categoryID'], $VisibleCategories); } } elseif (!$_FlagChecked && !$_FlagExpanded) { $_FlagHandler = 4; $ProductsCounter += isset($_SESSION['selectedProductsIncSub'][$_CategoryID]) ? $_SESSION['selectedProductsIncSub'][$_CategoryID] : 0; } elseif (!$_FlagChecked && $_FlagExpanded) { $_FlagHandler = 5; $Subs = catGetSubCategoriesSingleLayer($_CategoryID); $i = 0; $alength = count($Subs); for (; $i < $alength; $i++) { $ProductsCounter += countSelectedProductsInCat($Subs[$i]['categoryID'], $VisibleCategories); } } if ($Debug && (1 || $_CategoryID == $_TestingCategory)) { print "ID - {$_CategoryID}; Checked - {$_FlagChecked}; Expanded - {$_FlagExpanded}; Handler - {$_FlagHandler}; SelIncS - " . $_SESSION['selectedProductsIncSub'][$_CategoryID] . '------' . $ProductsCounter . '<br />'; } return $ProductsCounter; }
function export_exportSubcategories($_pCategoryID, &$exportCategories, &$params) { if (!$_pCategoryID) { foreach ($_SESSION['checkedCategories'] as $_categoryID => $_checked) { if (in_array($_categoryID, $exportCategories[0])) { continue; } if (in_array($_categoryID, $exportCategories[1])) { continue; } $exportCategories[intval($_checked)][] = $_categoryID; if ($_checked) { //print '='.$_categoryID.'--'.$_checked.'<br />'; if (isset($_SESSION['selectedProducts'][$_categoryID])) { foreach ($_SESSION['selectedProducts'][$_categoryID] as $__ProductID => $__Checked) { if ($params['exprtUNIC']['mode'] == 'toarrays') { $params['exprtUNIC']['expProducts'][] = $__ProductID; continue; } __exportProduct($__ProductID, $params); } } else { //print '-'.$_categoryID.'--'.$_checked.'<br />'; $Count = 0; $callBackParam = array(); $callBackParam["categoryID"] = intval($_categoryID); $callBackParam["searchInSubcategories"] = true; $_Products = prdSearchProductByTemplate($callBackParam, $Count); // $_Products = prdGetProductByCategory( array('categoryID'=>intval($_categoryID), 'fullFlag'=>false), $_t ); foreach ($_Products as $__Product) { if (!$__Product['enabled']) { continue; } if ($params['exprtUNIC']['mode'] == 'toarrays') { $params['exprtUNIC']['expProducts'][] = $__Product['productID']; continue; } __exportProduct($__Product['productID'], $params); } } } export_exportSubcategories($_categoryID, $exportCategories, $params); } return 1; } $_subs = catGetSubCategoriesSingleLayer($_pCategoryID); foreach ($_subs as $__Category) { $_CategoryID = $__Category['categoryID']; if (isset($_SESSION['checkedCategories'][$_CategoryID])) { $_t = intval($_SESSION['checkedCategories'][$_CategoryID]) ? intval($_SESSION['checkedCategories'][$_CategoryID]) : isset($_SESSION['selectedProducts'][$_CategoryID]); $exportCategories[$_t][] = $_CategoryID; } elseif (in_array($_pCategoryID, $exportCategories[1])) { $exportCategories[1][] = $_CategoryID; } if (isset($exportCategories[1][count($exportCategories[1]) - 1])) { if ($exportCategories[1][count($exportCategories[1]) - 1] == $_CategoryID) { if (isset($_SESSION['selectedProducts'][$_CategoryID])) { foreach ($_SESSION['selectedProducts'][$_CategoryID] as $__ProductID => $__Checked) { if ($params['exprtUNIC']['mode'] == 'toarrays') { $params['exprtUNIC']['expProducts'][] = $__ProductID; continue; } __exportProduct($__ProductID, $params); } } else { $Count = 0; $callBackParam = array(); $callBackParam["categoryID"] = intval($_CategoryID); $callBackParam["searchInSubcategories"] = true; $_Products = prdSearchProductByTemplate($callBackParam, $Count); // $_Products = prdGetProductByCategory( array('categoryID'=>intval($_CategoryID), 'fullFlag'=>false), $_t ); foreach ($_Products as $__Product) { if (!$__Product['enabled']) { continue; } if ($params['exprtUNIC']['mode'] == 'toarrays') { $params['exprtUNIC']['expProducts'][] = $__Product['productID']; continue; } __exportProduct($__Product['productID'], $params); } } } else { if (!isset($_SESSION['isExploded'][$_CategoryID])) { continue; } if (!$_SESSION['isExploded'][$_CategoryID] && !$_SESSION['checkedCategories'][$_CategoryID]) { continue; } } } export_exportSubcategories($_CategoryID, $exportCategories, $params); } }