Пример #1
0
     $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;
Пример #2
0
 /**
  * @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();
 }
Пример #3
0
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']);