newism/craft3-money

CraftCMS v3 的货币字段类型

安装: 57

依赖: 0

建议者: 0

安全: 0

星星: 2

观察者: 2

分支: 1

开放问题: 2

类型:craft-plugin

1.0.2 2020-11-30 11:35 UTC

This package is auto-updated.

Last update: 2024-09-29 05:29:48 UTC


README

in action

site settings

要求

此插件需要 Craft CMS 3.5.0 或更高版本。

安装

要安装此插件,请按照以下说明操作。

  1. 打开您的终端并转到您的 Craft 项目
$ cd /path/to/project
  1. 然后告诉 Composer 加载插件
$ composer require newism/craft3-money
  1. 在控制面板中,转到设置 → 插件,点击“安装”按钮 Money 或运行
$ ./craft plugin/install money

Money 概览

Money 是一个自定义字段类型和格式化程序,它使用 moneyphp/money 库。值以 json 格式存储在数据库中,并以 Money 值对象进行归一化。

货币从 moneyphp/money 库加载。完整列表可在此找到: https://github.com/moneyphp/money/blob/master/resources/currency.php

此插件还加载 symfony/intl 以获取货币名称。

配置 Money

Money 有两个配置级别

  • 使用配置文件或插件设置的站点设置
  • 字段设置

注意:字段设置追加到站点设置。

这两个设置是

  • 首选货币:这些货币首先在货币下拉列表中显示。
  • 排除货币:这些货币从货币下拉列表中排除。

这两个设置接受逗号分隔的字母货币代码列表。

建议排除以下货币: XBA, XBB, XBC, XBD, XTS, XXX, XAU, XPD, XPT, XAG

要使用配置文件,请参阅 ./src/config.php

使用 Money

此插件包含用于渲染字段值的服务。

注意:在以下三种方法中 value 必须是 Money 的实例。示例使用 'Elvis Operator'

国际格式化器

{{ value ? craft.money.intlFormatter.format(value) }}

# or explicitly define the locale
{{ value ? craft.money.getIntlFormatter(locale).format(value) }}

intlFormatter 返回一个 [IntlMoneyFormatter](http://moneyphp.org/en/stable/features/formatting.html#intl-money-formatter) 对象。此格式化程序需要 intl 扩展。

调用 .format() 将返回一个字符串,其中包含符合 locale 的格式的货币符号。分隔符也将匹配区域设置。

locale 是一个可选参数,默认为 Craft 定义的区域设置: \Craft::$app->locale->id

见: http://moneyphp.org/en/stable/features/formatting.html#intl-money-formatter

国际小数格式化器

{{ value ? craft.money.intlDecimalFormatter.format(value) }}

# or explicitly define the locale
{{ value ? craft.money.getIntlDecimalFormatter(locale).format(value) }}

与上面相同,但不包括货币符号。

见: http://moneyphp.org/en/stable/features/formatting.html#intl-decimal-formatter

小数格式化器

{{ value ? craft.money.decimalFormatter.format(value) }}

此格式化程序输出一个简单的十进制字符串,该字符串始终以与区域设置无关的一致格式。

Money 路线图

一些要完成的事情以及潜在功能的想法

  • 测试多个 PHP 版本
  • 审查 symfony/intl 用于货币名称的使用
  • 编写测试
  • 检查GraphQL输出
  • 为插件UI添加本地化字符串
  • 发布它

致谢

Newism提供