doefom/currency-fieldtype

此Statamic插件提供了一种货币字段类型,让您可以选择世界上使用最广泛的货币之一,特别适合在您任何蓝图中的“价格”或“账户余额”等字段中使用。

v1.4.1 2024-08-19 04:47 UTC

This package is auto-updated.

Last update: 2024-09-19 05:03:22 UTC


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问题,我们将尽最大努力考虑您的请求。