silvercommerce/geozones

Add generic 'geo-zones' a full list of country specific regions and the ability to categorise them into zones

Installs: 5 319

Dependents: 2

Suggesters: 0

Security: 0

Stars: 1

Watchers: 4

Forks: 1

Open Issues: 0

Type:silverstripe-vendormodule

1.1.1 2018-11-23 17:09 UTC

This package is auto-updated.

Last update: 2024-04-06 02:31:16 UTC


README

Scrutinizer Code Quality

Adds a list of ISO-3166-2 "Subdivisions" and allows for these to be divided up into "Zones" (which can be used for geographical identicifation)

The initial list is generated based on data provided by the Debian project. more at:

https://salsa.debian.org/iso-codes-team/iso-codes/blob/master/data/iso_3166-2.json

NOTE This module just provides data that you can then work with on your SilverStripe project.

Instalation

Easiest is to install via composer:

composer require silvercommerce/geozones

Setup

All GeoZone settings are linked to SiteConfig, to setup new Zones, or add new regions, you can do this by visit site settings and selecting the "GeoZones" tab.

Region Selection Field

This module also provides a RegionSelectionField which is a simple ajax powered form field that can be used to filter the regions list by a pre-defined country code.

You can add a RegionSelectionField to your code via the following:

use SilverCommerce\GeoZones\Forms\RegionSelectionField;

$form = Form::create(
    $this,
    'PostageForm',
    $fields = FieldList::create(
        DropdownField::create(
            'Country',
            'Country',
            array_change_key_case(
                i18n::getData()->getCountries(),
                CASE_UPPER
            )
        ),
        RegionSelectionField::create(
            "Region",
            "County/State",
            "Country" // name of the field in this form responsible for setting a country code
        )
    ),
    $actions = FieldList::create(
        FormAction::create(
            "doSetPostage",
            _t('SilverCommerce\ShoppingCart.Search', "Search")
        )
    ),
    $required = RequiredFields::create(array(
        "Country",
        "Region"
    ))
);

NOTE You must add a field to the same form that is responsible for setting a valid country code (ISO 3166 2 character) for RegionSelectionField to work.