mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-13 04:38:03 +08:00
Merge branch 'patch-1' of github.com:leandrogehlen/yii2 into leandrogehlen-patch-1
Conflicts: framework/CHANGELOG.md
This commit is contained in:
@@ -67,6 +67,7 @@ Yii Framework 2 Change Log
|
|||||||
- Enh #3574: Add integrity check support for SQLite (zeeke)
|
- Enh #3574: Add integrity check support for SQLite (zeeke)
|
||||||
- Enh #3597: Nested array support for HTML5 custom "data-*" attributes (armab)
|
- Enh #3597: Nested array support for HTML5 custom "data-*" attributes (armab)
|
||||||
- Enh #3607: Added support for limit in migrations actions: history, new, redo (Ragazzo)
|
- Enh #3607: Added support for limit in migrations actions: history, new, redo (Ragazzo)
|
||||||
|
- Enh #3631: Added property `currencyCode` to `yii\i18n\Formatter` (leandrogehlen)
|
||||||
- Enh #3636: Hide menu container tag with empty items in `yii\widgets\Menu` (arturf)
|
- Enh #3636: Hide menu container tag with empty items in `yii\widgets\Menu` (arturf)
|
||||||
- Enh #3643: Improved Mime-Type detection by using the `mime.types` file from apache http project to dected mime types by file extension (cebe, pavel-voronin, trejder)
|
- Enh #3643: Improved Mime-Type detection by using the `mime.types` file from apache http project to dected mime types by file extension (cebe, pavel-voronin, trejder)
|
||||||
- Enh: Added support for using sub-queries when building a DB query with `IN` condition (qiangxue)
|
- Enh: Added support for using sub-queries when building a DB query with `IN` condition (qiangxue)
|
||||||
|
|||||||
@@ -73,6 +73,11 @@ class Formatter extends \yii\base\Formatter
|
|||||||
* If not set, the thousand separator corresponding to [[locale]] will be used.
|
* If not set, the thousand separator corresponding to [[locale]] will be used.
|
||||||
*/
|
*/
|
||||||
public $thousandSeparator;
|
public $thousandSeparator;
|
||||||
|
/**
|
||||||
|
* @var string the international currency code displayed when formatting a number.
|
||||||
|
* If not set, the currency code corresponding to [[locale]] will be used.
|
||||||
|
*/
|
||||||
|
public $currencyCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initializes the component.
|
* Initializes the component.
|
||||||
@@ -88,7 +93,7 @@ class Formatter extends \yii\base\Formatter
|
|||||||
if ($this->locale === null) {
|
if ($this->locale === null) {
|
||||||
$this->locale = Yii::$app->language;
|
$this->locale = Yii::$app->language;
|
||||||
}
|
}
|
||||||
if ($this->decimalSeparator === null || $this->thousandSeparator === null) {
|
if ($this->decimalSeparator === null || $this->thousandSeparator === null || $this->currencyCode === null) {
|
||||||
$formatter = new NumberFormatter($this->locale, NumberFormatter::DECIMAL);
|
$formatter = new NumberFormatter($this->locale, NumberFormatter::DECIMAL);
|
||||||
if ($this->decimalSeparator === null) {
|
if ($this->decimalSeparator === null) {
|
||||||
$this->decimalSeparator = $formatter->getSymbol(NumberFormatter::DECIMAL_SEPARATOR_SYMBOL);
|
$this->decimalSeparator = $formatter->getSymbol(NumberFormatter::DECIMAL_SEPARATOR_SYMBOL);
|
||||||
@@ -96,6 +101,9 @@ class Formatter extends \yii\base\Formatter
|
|||||||
if ($this->thousandSeparator === null) {
|
if ($this->thousandSeparator === null) {
|
||||||
$this->thousandSeparator = $formatter->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL);
|
$this->thousandSeparator = $formatter->getSymbol(NumberFormatter::GROUPING_SEPARATOR_SYMBOL);
|
||||||
}
|
}
|
||||||
|
if ($this->currencyCode === null) {
|
||||||
|
$this->currencyCode = $formatter->getSymbol(NumberFormatter::INTL_CURRENCY_SYMBOL);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
parent::init();
|
parent::init();
|
||||||
@@ -257,16 +265,21 @@ class Formatter extends \yii\base\Formatter
|
|||||||
* Formats the value as a currency number.
|
* Formats the value as a currency number.
|
||||||
* @param mixed $value the value to be formatted
|
* @param mixed $value the value to be formatted
|
||||||
* @param string $currency the 3-letter ISO 4217 currency code indicating the currency to use.
|
* @param string $currency the 3-letter ISO 4217 currency code indicating the currency to use.
|
||||||
|
* If null, [[currencyCode]] will be used.
|
||||||
* @param string $format the format to be used. Please refer to [ICU manual](http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html#_details)
|
* @param string $format the format to be used. Please refer to [ICU manual](http://www.icu-project.org/apiref/icu4c/classDecimalFormat.html#_details)
|
||||||
* for details on how to specify a format.
|
* for details on how to specify a format.
|
||||||
* @return string the formatted result.
|
* @return string the formatted result.
|
||||||
*/
|
*/
|
||||||
public function asCurrency($value, $currency = 'USD', $format = null)
|
public function asCurrency($value, $currency = null, $format = null)
|
||||||
{
|
{
|
||||||
if ($value === null) {
|
if ($value === null) {
|
||||||
return $this->nullDisplay;
|
return $this->nullDisplay;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($currency === null){
|
||||||
|
$currency = $this->currencyCode;
|
||||||
|
}
|
||||||
|
|
||||||
return $this->createNumberFormatter(NumberFormatter::CURRENCY, $format)->formatCurrency($value, $currency);
|
return $this->createNumberFormatter(NumberFormatter::CURRENCY, $format)->formatCurrency($value, $currency);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user