function GetList(&$by, &$order, $filter, $lang = LANGUAGE_ID) { global $DB; global $CACHE_MANAGER; if (defined("CURRENCY_SKIP_CACHE") && CURRENCY_SKIP_CACHE || StrToLower($by) == "name" || StrToLower($by) == "currency" || StrToLower($order) == "desc") { $dbCurrencyList = CFTriggerLog::__GetList($by, $order, $filter, $lang); } else { $by = "sort"; $order = "asc"; $lang = substr($lang, 0, 2); $cacheTime = CURRENCY_CACHE_DEFAULT_TIME; if (defined("CURRENCY_CACHE_TIME")) $cacheTime = intval(CURRENCY_CACHE_TIME); if ($CACHE_MANAGER->Read($cacheTime, "currency_currency_list_".$lang)) { $arCurrencyList = $CACHE_MANAGER->Get("currency_currency_list_".$lang); $dbCurrencyList = new CDBResult(); $dbCurrencyList->InitFromArray($arCurrencyList); } else { $arCurrencyList = array(); $dbCurrencyList = CFTriggerLog::__GetList($by, $order, $filter, $lang); while ($arCurrency = $dbCurrencyList->Fetch()) $arCurrencyList[] = $arCurrency; $CACHE_MANAGER->Set("currency_currency_list_".$lang, $arCurrencyList); $dbCurrencyList = new CDBResult(); $dbCurrencyList->InitFromArray($arCurrencyList); } } return $dbCurrencyList; }