silvercommerce / geozones
Add generic 'geo-zones' a full list of country specific regions and the ability to categorise them into zones
Installs: 5 543
Dependents: 2
Suggesters: 0
Security: 0
Stars: 1
Watchers: 4
Forks: 2
Open Issues: 0
Type:silverstripe-vendormodule
Requires
- silverstripe/framework: ^4 || ^5
- silverstripe/siteconfig: ^4 || ^5
Suggests
- silverstripe/cms: Add full content management support to your site
README
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.