示例#1
0
 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;
 }
示例#2
0
	/**
	 * <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>
	 * &lt;?
	 * // Выведем список валют на текущем языке, отсортированный по названию
	 * // Кроме того выведем сумму 11.95 в формате этой валюты на текущем языке
	 * $lcur = CCurrency::GetList(($by="name"), ($order1="asc"), LANGUAGE_ID);
	 * while($lcur_res = $lcur-&gt;Fetch())
	 * {
	 *     echo "[".$lcur_res["CURRENCY"]."] ".$lcur_res["FULL_NAME"].": ";
	 *     echo CurrencyFormat(11.95, $lcur_res["CURRENCY"])."&lt;br&gt;";
	 * }
	 * ?&gt;
	 * </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;
	}