Index: branches/5.2.x/core/kernel/db/db_tag_processor.php =================================================================== diff -u -N -r14757 -r14769 --- branches/5.2.x/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 14757) +++ branches/5.2.x/core/kernel/db/db_tag_processor.php (.../db_tag_processor.php) (revision 14769) @@ -1,6 +1,6 @@ Convert($value, 'PRIMARY', $iso); } - function AddCurrencySymbol($value, $iso) + function AddCurrencySymbol($value, $iso, $decimal_tag = '') { + static $decimal_separator = false; + $cache_key = 'iso_masks[%CurrSerial%]'; $iso_masks = $this->Application->getCache($cache_key); @@ -833,6 +835,18 @@ $this->Application->setCache($cache_key, $iso_masks); } + if ( $decimal_tag ) { + if ( $decimal_separator === false ) { + $language =& $this->Application->recallObject('lang.current'); + /* @var $language LanguagesItem */ + + $decimal_separator = $language->GetDBField('DecimalPoint'); + } + + list ($integer_part, $decimal_part) = explode($decimal_separator, $value); + $value = $integer_part . $decimal_separator . '<' . $decimal_tag . '>' . $decimal_part . ''; + } + $iso = strtolower($iso); return array_key_exists($iso, $iso_masks) ? sprintf($iso_masks[$iso], $value) : $value; @@ -886,7 +900,8 @@ } if (array_key_exists('currency', $params) && $params['currency']) { - $value = $this->AddCurrencySymbol($value, $iso); + $decimal_tag = isset($params['decimal_tag']) ? $params['decimal_tag'] : ''; + $value = $this->AddCurrencySymbol($value, $iso, $decimal_tag); $params['no_special'] = 1; } }