protected function getSaleFormatCurrency($price, $currency) { $currency = (string) $currency; $arCurFormat = CCurrencyLang::GetCurrencyFormat($currency, $this->getLanguageId()); $arDefaultValues = CCurrencyLang::GetDefaultValues(); $arSeparators = CCurrencyLang::GetSeparators(); if ($arCurFormat === false) { $arCurFormat = $arDefaultValues; } else { if (!isset($arCurFormat['DECIMALS'])) { $arCurFormat['DECIMALS'] = $arDefaultValues['DECIMALS']; } $arCurFormat['DECIMALS'] = (int) $arCurFormat['DECIMALS']; if (!isset($arCurFormat['DEC_POINT'])) { $arCurFormat['DEC_POINT'] = $arDefaultValues['DEC_POINT']; } if (!empty($arCurFormat['THOUSANDS_VARIANT']) && isset($arSeparators[$arCurFormat['THOUSANDS_VARIANT']])) { $arCurFormat['THOUSANDS_SEP'] = $arSeparators[$arCurFormat['THOUSANDS_VARIANT']]; } elseif (!isset($arCurFormat['THOUSANDS_SEP'])) { $arCurFormat['THOUSANDS_SEP'] = $arDefaultValues['THOUSANDS_SEP']; } if (!isset($arCurFormat['FORMAT_STRING'])) { $arCurFormat['FORMAT_STRING'] = $arDefaultValues['FORMAT_STRING']; } if (!isset($arCurFormat['HIDE_ZERO']) || empty($arCurFormat['HIDE_ZERO'])) { $arCurFormat['HIDE_ZERO'] = $arDefaultValues['HIDE_ZERO']; } } $intDecimals = $arCurFormat['DECIMALS']; if ($arCurFormat['HIDE_ZERO'] == 'Y') { if (round($price, $arCurFormat["DECIMALS"]) == round($price, 0)) { $intDecimals = 0; } } $price = number_format($price, $intDecimals, $arCurFormat['DEC_POINT'], $arCurFormat['THOUSANDS_SEP']); if ($arCurFormat['THOUSANDS_VARIANT'] == CCurrencyLang::SEP_NBSPACE) { $price = str_replace(' ', ' ', $price); } return str_replace('#', $price, $arCurFormat['FORMAT_STRING']); }