doefom/ currency-fieldtype
此Statamic插件提供了一种货币字段类型,让您可以选择世界上使用最广泛的货币之一,特别适合在您任何蓝图中的“价格”或“账户余额”等字段中使用。
Requires
- php: ^8.1
- ext-intl: *
- statamic/cms: ^v4.0|^v5.0
Requires (Dev)
- orchestra/testbench: ^8.5
- phpunit/phpunit: ^10.2
README
货币字段类型是一个Statamic插件,它通过利用输入掩码让您轻松处理任何货币。好吧,不是任何,但至少是许多。具体来说,是世界上交易量最大的25种货币。查看我们目前支持哪些货币。
支持的版本
- ✅ Statamic v4
- ✅ Statamic v5
特性
该插件确保您始终根据使用的区域和货币获得正确的格式。虽然当使用它时可以安全地忽略该插件,但它仍然在后台提供有用的信息,以防您需要。以下是你将获得的信息
- 作为浮点数(
1234.56
)的值 - 作为格式化的字符串(
'$1,234.56'
)的值 - 不带符号的格式化字符串(
'1,234.56'
)的值 - 所选货币的ISO代码(
'USD'
) - 所选货币的数字代码(
'840'
) - 所选货币的符号(
'$'
) - 符号是附加到数字还是前面(
true
/false
) - 分组分隔符(对于
'$1,234.56'
,分组分隔符将是,
) - 小数点(对于
'$1,234.56'
,小数点将是.
) - 小数位数(对于
'$1,234.56'
,位数将是2
) - 值是否存储在子单位中(
true
/false
) - 所选货币的子单位系数(
100
)
输入掩码
字段类型对每个单独的货币实现了输入掩码,这使得在处理财务数据或货币时提供了非常流畅的体验。
如何安装
您可以在Statamic控制面板的“工具 > 插件”部分中搜索此插件,并单击“安装”,或者从项目根目录运行以下命令
composer require doefom/currency-fieldtype
如何使用
字段配置
您可以将字段类型添加到您的蓝图中,就像添加Statamic中已包含的任何其他字段类型一样。对于配置,您只需选择您想要使用的货币即可。此外,您还可以为字段的值启用子单位存储。
在Antlers模板中的使用
为了给您所有所需灵活性和信息,字段类型支持增强,因此可用的值比仅值本身要多得多。假设我们有一个使用货币字段类型且字段处理程序为price
的蓝图。在将值保存到条目后,您的数据将如下所示
price: 1234.56
当在Antlers模板中使用字段时,您可以使用以下信息
{{ price:value }} => 1234.56
{{ price:formatted }} => '$1,234.56'
{{ price:formatted_no_symbol }} => '1,234.56'
{{ price:iso }} => 'USD'
{{ price:numeric_code }} => '840'
{{ price:symbol }} => '$'
{{ price:append }} => false
{{ price:group_separator }} => ','
{{ price:radix_point }} => '.'
{{ price:digits }} => 2
{{ price:store_sub_units }} => false
{{ price:sub_unit_factor }} => 100
当使用Statamic API或在检索的数据增强的任何其他情况下也是这样。当使用子单位值存储时,formatted
值将为主单位,而value
将直接返回,为子单位。在上面的示例中,启用子单位存储后,前三个值将如下所示
{{ price:value }} => 123456
{{ price:formatted }} => '$1,234.56'
{{ price:formatted_no_symbol }} => '1,234.56'
...
注意事项
在使用后更改货币字段类型的配置
如果您已将货币字段类型配置为使用特定货币,并且保存了多个条目,然后更改其配置,在大多数情况下这不会造成任何问题。数据将仅转换为新配置的货币。然而,某些货币转换可能会导致问题,尤其是在目标货币的小数位数少于原始货币时。
例如:假设我们有一个价格为1234.56
的条目(该字段使用货币字段类型)。在USD
(美元)中,它将显示为$1,234.56
。如果您将其转换为具有0
位小数的JPY
(日元),则会得到错误的结果¥1,235
。这只是为了以防您需要重新配置字段时注意。
汇率
如果您更改字段配置中的货币,我们只是使用另一种格式,仅此而已。我们不会将任何货币转换为另一种货币。
支持的货币
"USD" => ["name" => "US Dollar", "numeric_code" => "840"],
"EUR" => ["name" => "Euro", "numeric_code" => "978"],
"JPY" => ["name" => "Yen", "numeric_code" => "392", "sub_unit_factor" => 1],
"GBP" => ["name" => "Pound Sterling", "numeric_code" => "826"],
"AUD" => ["name" => "Australian Dollar", "numeric_code" => "036"],
"CAD" => ["name" => "Canadian Dollar", "numeric_code" => "124"],
"CHF" => ["name" => "Swiss Franc", "numeric_code" => "756"],
"CNY" => ["name" => "Yuan Renminbi", "numeric_code" => "156"],
"SEK" => ["name" => "Swedish Krona", "numeric_code" => "752"],
"MXN" => ["name" => "Mexican Peso", "numeric_code" => "484"],
"NZD" => ["name" => "New Zealand Dollar", "numeric_code" => "554"],
"SGD" => ["name" => "Singapore Dollar", "numeric_code" => "702"],
"HKD" => ["name" => "Hong Kong Dollar", "numeric_code" => "344"],
"NOK" => ["name" => "Norwegian Krone", "numeric_code" => "578"],
"KRW" => ["name" => "Won", "numeric_code" => "410"],
"TRY" => ["name" => "Turkish Lira", "numeric_code" => "949"],
"INR" => ["name" => "Indian Rupee", "numeric_code" => "356"],
"RUB" => ["name" => "Russian Ruble", "numeric_code" => "643"],
"BRL" => ["name" => "Brazilian Real", "numeric_code" => "986"],
"ZAR" => ["name" => "Rand", "numeric_code" => "710"],
"DKK" => ["name" => "Danish Krone", "numeric_code" => "208"],
"PLN" => ["name" => "Zloty", "numeric_code" => "985"],
"TWD" => ["name" => "New Taiwan Dollar", "numeric_code" => "901"],
"THB" => ["name" => "Baht", "numeric_code" => "764"],
"MYR" => ["name" => "Malaysian Ringgit", "numeric_code" => "458"],
"CZK" => ["name" => "Czech Koruna", "numeric_code" => "203"],
您的货币缺失?请随时提交一个GitHub问题,我们也很乐意添加您的货币!
支持
此插件正在积极维护中。如果事情没有按计划进行,或者您看到改进的机会,只需打开一个GitHub问题,我们将尽最大努力考虑您的请求。