$arFilterRes = ${$arParams["FILTER_NAME"]}; if (!is_array($arFilter)) { $arFilterRes = array(); } } $arOrderFilterRes = array(">=DATE_ALLOW_DELIVERY" => ConvertTimeStamp(AddToTimeStamp(array("DD" => "-" . $arParams["days"]))), "=ALLOW_DELIVERY" => "Y", "=LID" => SITE_ID); if (strlen($arParams["ORDER_FILTER_NAME"]) >= 0 && preg_match("/^[A-Za-z_][A-Za-z01-9_]*\$/", $arParams["ORDER_FILTER_NAME"])) { global ${$arParams["ORDER_FILTER_NAME"]}; if (is_array(${$arParams["ORDER_FILTER_NAME"]})) { foreach (${$arParams["ORDER_FILTER_NAME"]} as $k => $v) { $arOrderFilterRes[$k] = $v; } } } $i = 0; $dbRes = CSaleProduct::GetBestSellerList($arParams["by_val"], $arFilterRes, $arOrderFilterRes, $arParams["ITEM_COUNT"] * 2); while ($arRes = $dbRes->GetNext()) { $arFilterIB = array("SITE_ID" => SITE_ID, "ID" => $arRes["PRODUCT_ID"], "ACTIVE" => "Y"); if (strlen($arRes["CATALOG_XML_ID"]) > 0) { $arFilterIB["IBLOCK_EXTERNAL_ID"] = $arRes["CATALOG_XML_ID"]; } $arResult["PRODUCT"][] = $arRes; $dbItem = CIBlockElement::GetList(array(), $arFilterIB, false, array("nTopCount" => 1), array("ID", "IBLOCK_ID", "NAME", "DETAIL_PAGE_URL")); $dbItem->SetUrlTemplates($arParams["DETAIL_URL"]); if ($arItem = $dbItem->GetNext()) { $arResTmp = $arItem; $i++; $arResult["ELEMENT"][] = $arResTmp; } if ($i >= $arParams["ITEM_COUNT"]) { break;
/** * @override * @return integer[] */ protected function getProductIds() { $ordersfilter = $this->getOrdersFilter(); if (!empty($ordersfilter)) { $productIds = array(); $productIterator = CSaleProduct::GetBestSellerList($this->arParams["BY"], array(), $ordersfilter, $this->arParams["PAGE_ELEMENT_COUNT"]); while ($product = $productIterator->fetch()) { $productIds[] = $product['PRODUCT_ID']; } return $productIds; } return array(); }
if (!isset($arGadgetParams["LIMIT"]) || (int) $arGadgetParams["LIMIT"] <= 0) { $arGadgetParams["LIMIT"] = 5; } $obCache = new CPHPCache(); $cache_id = "admin_products_" . md5(serialize($arFilter)) . "_" . $arGadgetParams["LIMIT"]; if ($obCache->InitCache($cache_time, $cache_id, "/")) { $arResult = $obCache->GetVars(); } else { $cacheStart = false; if ($cache_time > 0) { $cacheStart = $obCache->StartDataCache(); } $arResult = array(); $arResult["SEL"] = array(); $arFilter["PAYED"] = "Y"; $dbR = CSaleProduct::GetBestSellerList("AMOUNT", array(), $arFilter, $arGadgetParams["LIMIT"]); while ($arR = $dbR->Fetch()) { $arResult["SEL"][] = $arR; } // VIEWED $arResult["VIEWED"] = array(); if (!Loader::includeModule("catalog")) { return; } $arFilter[">=DATE_VISIT"] = $arFilter[">=DATE_INSERT"]; unset($arFilter[">=DATE_INSERT"]); if (isset($arFilter['LID'])) { $arFilter['SITE_ID'] = $arFilter['LID']; unset($arFilter['LID']); } unset($arFilter['PAYED']);