Provides time zone data as well as a pre-populated dropdown field for SilverStripe
PHP
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
code
tests
.editorconfig
.gitattributes
.scrutinizer.yml
.travis.yml
CONTRIBUTING.md
README.md
_config.php
composer.json
license.md

README.md

SilverStripe Time zones FormField module
Build Status Latest Stable Version Latest Unstable Version Scrutinizer Code Quality Total Downloads License

Provides a reusable model and data of the time zones worldwide. In addition a dropdown field for a time zones selection is included.

Requirements

  • PHP >= 5.2.0
  • SilverStripe Framework ~3.1.

Installation

For the installation you can either download the package, unzip it into your project directory and run dev build manually or run the following commands in your project directory:

composer require spekulatius/silverstripe-timezones
php ./framework/cli-script.php dev/build

The data will automaticially populated on dev build.

Provided Data

The provided data comes from PHPs built-in function timezone_identifiers_list(). Before the data gets saved in the db it will be prepared so its ready to be used.

Dropdown Field

If you want to use the dropdown field you can simply add a timezone to your db fields:

<?php
class MyPage extends Page
{
    /**
     * @var array
     */
    private static $db = array(
        'UserTimeZone' => 'TimeZone'
    );

    /**
     * @return FieldList
     */
    public function getCMSFields()
    {
        $fields = parent::getCMSFields();

        // ...

        $fields->addFieldToTab(
            'Root.Main',
            TimeZoneField::create(
                'TimeZone',
                'My time zone'
            )
        );

        return $fields;
    }
}

Format of time zone

You can change the default format of the time zone in the dropdown menu by creating a file mysite/_config/timezone.yml and adding e.g.

Injector:
  TimeZoneData:
    properties:
      format: '%Name (%Region)'

You can use 'Name', 'Region' and 'Identifier' in the string and it will be replaced proper.

MISC: Future ideas/development, issues, Contributing, License