public static function GetList(&$by, &$order, $lang = LANGUAGE_ID) { global $CACHE_MANAGER; if (defined("CURRENCY_SKIP_CACHE") && CURRENCY_SKIP_CACHE || strtolower($by) == "name" || strtolower($by) == "currency" || strtolower($order) == "desc") { $dbCurrencyList = CCurrency::__GetList($by, $order, $lang); } else { $cacheTime = (int) CURRENCY_CACHE_DEFAULT_TIME; if (defined("CURRENCY_CACHE_TIME")) { $cacheTime = (int) CURRENCY_CACHE_TIME; } if ($CACHE_MANAGER->Read($cacheTime, "currency_currency_list_" . $lang, 'b_catalog_currency')) { $arCurrencyList = $CACHE_MANAGER->Get("currency_currency_list_" . $lang); $dbCurrencyList = new CDBResult(); $dbCurrencyList->InitFromArray($arCurrencyList); } else { $arCurrencyList = array(); $dbCurrencyList = CCurrency::__GetList($by, $order, $lang); while ($arCurrency = $dbCurrencyList->Fetch()) { $arCurrencyList[] = $arCurrency; } $CACHE_MANAGER->Set("currency_currency_list_" . $lang, $arCurrencyList); $dbCurrencyList = new CDBResult(); $dbCurrencyList->InitFromArray($arCurrencyList); } } return $dbCurrencyList; }
/** * <p>Функция возвращает список валют, отсортированный по полю из параметра by в направлении order. Языкозависимые параметры валют берутся для языка, указанного в параметре lang (по умолчанию равен текущему языку). </p> * * * * * @param string &$by Переменная, содержащая порядок сортировки валют. Допустимые * значения переменной:<br> currency - код валюты<br> name - название валюты на * языке lang<br> sort - индекс сортировки (по-умолчанию) * * * * @param string &$order Переменная, содержащая направление сортировки. Допустимые * значения:<br> asc - по возрастанию значений (по-умолчанию) <br> desc - по * убыванию значений. * * * * @param string $lang = LANGUAGE_ID Код языка, для которого выбираются языкозависимые параметры * валют. * * * * @return CDBResult <p>Возвращается объект класса CDBResult, каждая запись в котором * представляет собой массив с ключами</p><table class="tnormal" width="100%"> <tr> <th * width="20%">Ключ</th> <th>Описание</th> </tr> <tr> <td>CURRENCY</td> <td>Код валюты * (трехсимвольный)</td> </tr> <tr> <td>AMOUNT_CNT</td> <td>Количество единиц валюты * по-умолчанию, которое учавствует в задании курса валюты * (например, если 10 Датских крон стоят 48.7 рублей, то 10 - это * количество единиц)</td> </tr> <tr> <td>AMOUNT</td> <td>Курс валюты по-умолчанию * (одна из валют сайта должна иметь курс 1, она называется базовой, * остальные валюты имеют курс относительно базовой валюты)</td> </tr> * <tr> <td>SORT</td> <td>Порядок сортировки.</td> </tr> <tr> <td>DATE_UPDATE</td> <td>Дата * последнего изменения записи.</td> </tr> <tr> <td>LID</td> <td>Код языка.</td> </tr> * <tr> <td>FORMAT_STRING</td> <td>Строка формата для показа сумм в этой валюте.</td> * </tr> <tr> <td>FULL_NAME</td> <td>Полное название валюты.</td> </tr> <tr> <td>DEC_POINT</td> * <td>Символ, который используется при показе сумм в этой валюте для * отображения десятичной точки.</td> </tr> <tr> <td>THOUSANDS_SEP</td> <td>Символ, * который используется при показе сумм в этой валюте для * отображения разделителя тысяч.</td> </tr> <tr> <td>DECIMALS</td> <td>Количество * знаков после запятой при показе.</td> </tr> </table><a name="examples"></a> * * * <h4>Example</h4> * <pre> * <? * // Выведем список валют на текущем языке, отсортированный по названию * // Кроме того выведем сумму 11.95 в формате этой валюты на текущем языке * $lcur = CCurrency::GetList(($by="name"), ($order1="asc"), LANGUAGE_ID); * while($lcur_res = $lcur->Fetch()) * { * echo "[".$lcur_res["CURRENCY"]."] ".$lcur_res["FULL_NAME"].": "; * echo CurrencyFormat(11.95, $lcur_res["CURRENCY"])."<br>"; * } * ?> * </pre> * * * @static * @link http://dev.1c-bitrix.ru/api_help/currency/developer/ccurrency/ccurrency__getlist.efde2fe7.php * @author Bitrix */ public static function GetList(&$by, &$order, $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 = CCurrency::__GetList($by, $order, $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 = CCurrency::__GetList($by, $order, $lang); while ($arCurrency = $dbCurrencyList->Fetch()) $arCurrencyList[] = $arCurrency; $CACHE_MANAGER->Set("currency_currency_list_".$lang, $arCurrencyList); $dbCurrencyList = new CDBResult(); $dbCurrencyList->InitFromArray($arCurrencyList); } } return $dbCurrencyList; }