spekulatius / silverstripe-timezones
提供时区数据以及为 SilverStripe 预置的下拉选择字段
1.0.1
2020-08-03 09:16 UTC
Requires
- php: ^7.2
- silverstripe/framework: ^4.0
Requires (Dev)
- symfony/thanks: ^1.0
README
提供可重复使用的全球时区模型和数据。此外,还包括用于时区选择的下拉字段。
需求
- SilverStripe 框架 4.0
安装
安装时,您可以下载包,将其解压缩到项目目录中,并手动运行开发构建,或者在项目目录中运行以下命令
composer require spekulatius/silverstripe-timezones
./vendor/bin/sake dev/build
数据将在开发构建过程中自动填充。
提供的数据
提供的数据来自 PHP 内置函数 timezone_identifiers_list()
。在数据保存到数据库之前,它将进行准备,以便可以使用。
下拉字段
如果您想使用下拉字段,只需将时区添加到您的数据库字段即可
<?php
use Spekulatius\TimeZones\Model\FieldType\TimeZone;
use Spekulatius\TimeZones\Forms\TimeZoneField;
class MyPage extends Page
{
/**
* @var array
*/
private static $db = array(
'UserTimeZone' => TimeZone::class
);
/**
* @return FieldList
*/
public function getCMSFields()
{
$fields = parent::getCMSFields();
// ...
$fields->addFieldToTab(
'Root.Main',
TimeZoneField::create(
'TimeZone',
'My time zone'
)
);
return $fields;
}
}
时区格式
您可以通过创建文件 mysite/_config/timezone.yml
并添加例如以下内容来更改下拉菜单中的默认时区格式
SilverStripe\Core\Injector\Injector:
Spekulatius\TimeZones\Model\TimeZoneData:
properties:
format: '%Name (%Region)'
您可以在字符串中使用 'Name'、'Region' 和 'Identifier',它们将被适当替换。
* [Future ideas/development, issues](https://github.com/spekulat/silverstripe-timezones/issues),
* [Contributing](https://github.com/spekulat/silverstripe-timezones/blob/master/CONTRIBUTING.md),
* [License](https://github.com/spekulat/silverstripe-timezones/blob/master/license.md)
该项目由 Bring Your Own Ideas Ltd. 支持。Bring Your Own Ideas Ltd. 帮助您将项目想法变为现实。