onesandzeros/silverstripe-timezones
提供时区数据以及为SilverStripe预填充的下拉字段
1.0
2019-02-13 03:25 UTC
Requires
- silverstripe/framework: ^4.0
This package is not auto-updated.
Last update: 2024-09-20 04:36:26 UTC
README
提供全球时区的可重用模型和数据。此外,还包括时区选择下拉字段。
需求
- SilverStripe框架4.0
安装
安装时,您可以下载该包,将其解压缩到您的项目目录中,然后手动运行dev构建,或者在任何项目目录中运行以下命令
composer require spekulatius/silverstripe-timezones
./vendor/bin/sake dev/build
数据将在dev构建时自动填充。
提供的数据
提供的数据来自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)