onesandzeros/silverstripe-timezones

提供时区数据以及为SilverStripe预填充的下拉字段

1.0 2019-02-13 03:25 UTC

This package is not auto-updated.

Last update: 2024-09-20 04:36:26 UTC


README

Build Status Latest Stable Version Latest Unstable Version Scrutinizer Code Quality Total Downloads License

提供全球时区的可重用模型和数据。此外,还包括时区选择下拉字段。

需求

  • 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)