newism / craft3-money
CraftCMS v3 的货币字段类型
Requires
- craftcms/cms: ^3.4
- moneyphp/money: ^3.3
- symfony/intl: ^5.0
Requires (Dev)
- codeception/codeception: ^3.0
- vlucas/phpdotenv: ^3.0
This package is auto-updated.
Last update: 2024-09-29 05:29:48 UTC
README
要求
此插件需要 Craft CMS 3.5.0 或更高版本。
安装
要安装此插件,请按照以下说明操作。
- 打开您的终端并转到您的 Craft 项目
$ cd /path/to/project
- 然后告诉 Composer 加载插件
$ composer require newism/craft3-money
- 在控制面板中,转到设置 → 插件,点击“安装”按钮 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提供