static function getInstalledCurrencies(): array
{
$installedCurrencies = Option::get('currency', 'installed_currencies');
if ($installedCurrencies === '')
{
$bitrix24 = MainModuleManager::isModuleInstalled('bitrix24');
$languageID = '';
$siteIterator = MainSiteTable::getList([
'select' => [
'LID',
'LANGUAGE_ID',
],
'filter' => [
'=DEF' => 'Y',
'=ACTIVE' => 'Y',
],
]);
$site = $siteIterator->fetch();
if (!empty($site))
{
$languageID = (string)$site['LANGUAGE_ID'];
}
unset($site, $siteIterator);
if ($languageID === '')
{
$languageID = 'en';
}
if (!$bitrix24 && $languageID === 'ru')
{
$languageList = [];
$languageIterator = LanguageTable::getList([
'select' => [
'ID',
],
'filter' => [
'@ID' => [
'kz',
'by',
'ua'
],
'=ACTIVE' => 'Y',
],
]);
while ($language = $languageIterator->fetch())
{
$languageList[$language['ID']] = $language['ID'];
}
unset($language, $languageIterator);
if (isset($languageList['kz']))
{
$languageID = 'kz';
}
elseif (isset($languageList['by']))
{
$languageID = 'by';
}
elseif (isset($languageList['ua']))
{
$languageID = 'ua';
}
unset($languageList);
}
unset($bitrix24);
switch ($languageID)
{
case 'br':
$currencyList = [
'BYN',
'RUB',
'USD',
'EUR',
];
break;
case 'ua':
$currencyList = [
'UAH',
'RUB',
'USD',
'EUR',
];
break;
case 'kz':
$currencyList = [
'KZT',
'RUB',
'USD',
'EUR',
];
break;
case 'ru':
$currencyList = [
'RUB',
'USD',
'EUR',
'UAH',
'BYN',
];
break;
case 'de':
case 'en':
case 'tc':
case 'sc':
case 'la':
default:
$currencyList = [
'USD',
'EUR',
'CNY',
'BRL',
'INR',
];
break;
}
Option::set('currency', 'installed_currencies', implode(',', $currencyList), '');
return $currencyList;
}
else
{
return explode(',', $installedCurrencies);
}
}