• Модуль: currency
  • Путь к файлу: ~/bitrix/modules/currency/lib/currencymanager.php
  • Класс: BitrixCurrencyCurrencyManager
  • Вызов: CurrencyManager::getSymbolList
static function getSymbolList(): array
{
	$currencyTableName = CurrencyTable::getTableName();
	$managedCache = Application::getInstance()->getManagedCache();

	$cacheTime = defined('CURRENCY_CACHE_TIME') ? (int)CURRENCY_CACHE_TIME : CURRENCY_CACHE_DEFAULT_TIME;
	$cacheId = self::CACHE_CURRENCY_SYMBOL_LIST_ID.LANGUAGE_ID;

	if ($managedCache->read($cacheTime, $cacheId, $currencyTableName))
	{
		$currencyList = $managedCache->get($cacheId);
	}
	else
	{
		$sanitizer = new CBXSanitizer();
		$sanitizer->setLevel(CBXSanitizer::SECURE_LEVEL_LOW);
		$sanitizer->ApplyDoubleEncode(false);

		$currencyList = [];
		$currencyIterator = CurrencyTable::getList([
			'select' => [
				'CURRENCY',
				'FORMAT_STRING' => 'CURRENT_LANG_FORMAT.FORMAT_STRING',
				'SORT',
			],
			'order' => [
				'SORT' => 'ASC',
				'CURRENCY' => 'ASC',
			],
		]);
		while ($currency = $currencyIterator->fetch())
		{
			$showValue = $currency['CURRENCY'];
			$currencyFormat = (string)$currency['FORMAT_STRING'];
			if ($currencyFormat !== '')
			{
				$symbol = CCurrencyLang::applyTemplate('', $currencyFormat);
				if (is_string($symbol))
				{
					$symbol = trim($symbol);
					if ($symbol !== '')
					{
						$showValue = $symbol;
					}
				}
			}
			$currencyList[$currency['CURRENCY']] = $sanitizer->SanitizeHtml($showValue);
		}

		$managedCache->set($cacheId, $currencyList);
	}

	return $currencyList;
}