From 8f8306cc9e3dbb3fddb0dddf8cb09326be93be20 Mon Sep 17 00:00:00 2001 From: Tony Air Date: Thu, 16 Jun 2022 00:39:33 +0200 Subject: [PATCH] FIX: MapAPI key --- src/Extensions/SiteConfigExtension.php | 270 ++++++++++++------------- 1 file changed, 125 insertions(+), 145 deletions(-) diff --git a/src/Extensions/SiteConfigExtension.php b/src/Extensions/SiteConfigExtension.php index 762dd6c..f89de35 100755 --- a/src/Extensions/SiteConfigExtension.php +++ b/src/Extensions/SiteConfigExtension.php @@ -42,166 +42,146 @@ use SilverStripe\Core\Config\Config; */ class SiteConfigExtension extends DataExtension { - private static $db = [ - 'ExtraCode' => 'Text', - 'Longitude' => 'Decimal(10, 8)', - 'Latitude' => 'Decimal(11, 8)', - 'MapZoom' => 'Int', - 'Description' => 'Varchar(255)', - 'Address' => 'Varchar(255)', - 'Suburb' => 'Varchar(255)', - 'State' => 'Varchar(255)', - 'Country' => 'Varchar(255)', - 'ZipCode' => 'Varchar(6)', - ]; + private static $db = [ + 'ExtraCode' => 'Text', + 'Longitude' => 'Decimal(10, 8)', + 'Latitude' => 'Decimal(11, 8)', + 'MapZoom' => 'Int', + 'Description' => 'Varchar(255)', + 'Address' => 'Varchar(255)', + 'Suburb' => 'Varchar(255)', + 'State' => 'Varchar(255)', + 'Country' => 'Varchar(255)', + 'ZipCode' => 'Varchar(6)', + ]; - private static $has_one = [ - 'PrivacyPolicy' => SiteTree::class, - 'Sitemap' => SiteTree::class, - ]; + private static $has_one = [ + 'PrivacyPolicy' => SiteTree::class, + 'Sitemap' => SiteTree::class, + ]; - private static $many_many = [ - 'Navigation' => SiteTree::class, - ]; + private static $many_many = [ + 'Navigation' => SiteTree::class, + ]; - public function updateCMSFields(FieldList $fields) - { - $img = Image::get()->filter([ - 'ParentID' => 0, - 'FileFilename' => 'qrcode.png', - ])->first(); - if ($img) { - $fields->addFieldsToTab('Root.Main', [ - LiteralField::create('QRCode', 'QR code'), - ]); - } + public function updateCMSFields(FieldList $fields) + { + $img = Image::get()->filter([ + 'ParentID' => 0, + 'FileFilename' => 'qrcode.png', + ])->first(); + if ($img) { + $fields->addFieldsToTab('Root.Main', [ + LiteralField::create('QRCode', 'QR code'), + ]); + } - $fields->addFieldsToTab('Root.Main', [ - TreeMultiselectField::create( - 'Navigation', - 'Navigation', - SiteTree::class - )->setDisableFunction(static function ($el) { - return $el->getField('ParentID') !== 0; - }), - TextareaField::create('Description', 'Website Description'), - TextareaField::create('ExtraCode', 'Extra site-wide HTML code'), - DropdownField::create( - 'PrivacyPolicyID', - 'Privacy Policy Page', - SiteTree::get()->map()->toArray() - )->setEmptyString('(Select one)'), - DropdownField::create( - 'SitemapID', - 'Sitemap Page', - SitemapPage::get()->map()->toArray() - )->setEmptyString('(Select one)'), - ]); + $fields->addFieldsToTab('Root.Main', [ + TreeMultiselectField::create( + 'Navigation', + 'Navigation', + SiteTree::class + )->setDisableFunction(static function ($el) { + return $el->getField('ParentID') !== 0; + }), + TextareaField::create('Description', 'Website Description'), + TextareaField::create('ExtraCode', 'Extra site-wide HTML code'), + DropdownField::create( + 'PrivacyPolicyID', + 'Privacy Policy Page', + SiteTree::get()->map()->toArray() + )->setEmptyString('(Select one)'), + DropdownField::create( + 'SitemapID', + 'Sitemap Page', + SitemapPage::get()->map()->toArray() + )->setEmptyString('(Select one)'), + ]); - $mapTab = $fields->findOrMakeTab('Root.Maps'); - $mapTab->setTitle('Address / Map'); + $mapTab = $fields->findOrMakeTab('Root.Maps'); + $mapTab->setTitle('Address / Map'); - $addrFields =[ - TextField::create('Address'), - TextField::create('ZipCode'), - TextField::create('Suburb', 'City'), - ]; + $addrFields =[ + TextField::create('Address'), + TextField::create('ZipCode'), + TextField::create('Suburb', 'City'), + ]; - if (\class_exists(Addressable::class)) { - $stateLabel = _t('Addressable.STATE', 'State'); - $allowedStates = Config::inst()->get(SiteConfig::class, 'allowed_states'); - if ($allowedStates && count($allowedStates) >= 1) { - // If allowed states are restricted, only allow those - $addrFields[] = DropdownField::create('State', $stateLabel, $allowedStates); - } elseif (!$allowedStates) { - // If no allowed states defined, allow the user to type anything - $addrFields[] = TextField::create('State', $stateLabel); - } + if (\class_exists(Addressable::class)) { + $stateLabel = _t('Addressable.STATE', 'State'); + $allowedStates = Config::inst()->get(SiteConfig::class, 'allowed_states'); + if ($allowedStates && count($allowedStates) >= 1) { + // If allowed states are restricted, only allow those + $addrFields[] = DropdownField::create('State', $stateLabel, $allowedStates); + } elseif (!$allowedStates) { + // If no allowed states defined, allow the user to type anything + $addrFields[] = TextField::create('State', $stateLabel); + } - // Get country field - $countryLabel = _t('Addressable.COUNTRY', 'Country'); - $allowedCountries = Config::inst()->get(SiteConfig::class, 'allowed_countries'); - if($allowedCountries && count($allowedCountries) >= 1) { - $addrFields[] = DropdownField::create( - 'Country', - $countryLabel, - $allowedCountries - ); - } else { - $addrFields[] = TextField::create('Country', $countryLabel); - } - } else { - $addrFields[] = TextField::create('State'); - $addrFields[] = TextField::create('Country'); - } + // Get country field + $countryLabel = _t('Addressable.COUNTRY', 'Country'); + $allowedCountries = Config::inst()->get(SiteConfig::class, 'allowed_countries'); + if($allowedCountries && count($allowedCountries) >= 1) { + $addrFields[] = DropdownField::create( + 'Country', + $countryLabel, + $allowedCountries + ); + } else { + $addrFields[] = TextField::create('Country', $countryLabel); + } + } else { + $addrFields[] = TextField::create('State'); + $addrFields[] = TextField::create('Country'); + } - $fields->addFieldsToTab('Root.Maps', $addrFields); + $fields->addFieldsToTab('Root.Maps', $addrFields); - if (MapboxField::getAccessToken()) { - $fields->addFieldsToTab('Root.Maps', [ - //TextField::create('MapAPIKey'), - TextField::create('MapZoom'), - MapboxField::create('Map', 'Choose a location', 'Latitude', 'Longitude'), - ]); - } else { - $fields->addFieldsToTab('Root.Maps', [ - LiteralField::create('MapNotice', '

No Map API keys specified.

') - ]); - } + if (MapboxField::getAccessToken()) { + $fields->addFieldsToTab('Root.Maps', [ + //TextField::create('MapAPIKey'), + TextField::create('MapZoom'), + MapboxField::create('Map', 'Choose a location', 'Latitude', 'Longitude'), + ]); + } else { + $fields->addFieldsToTab('Root.Maps', [ + LiteralField::create('MapNotice', '

No Map API keys specified.

') + ]); + } - /*GoogleMapField::create( - $this->owner, - 'Location', - [ - 'show_search_box' => true, - ] - )*/ - } + /*GoogleMapField::create( + $this->owner, + 'Location', + [ + 'show_search_box' => true, + ] + )*/ + } - public static function MapAPIKey(): string - { - $type = $this->owner->config()->get('map_type'); + public function MapStyle() + { + return MapboxField::config()->get('map_style'); + } - switch ($type) { - case 'mapbox': - $key = MapboxField::getAccessToken(); - break; - case 'google-maps': - $cfg = Config::inst()->get(GoogleMapField::class, 'default_options'); - $key = $cfg['api_key']; - break; - default: - $key = ''; - break; - } + public function getGeoJSON() + { + return '{"type": "MarkerCollection","features": [{"type": "Feature","icon": "",' + .'"properties": {"content": "'.$this->owner->getTitle().'"},"geometry": {"type": "Point",' + .'"coordinates": ['.$this->owner->getField('Lng').','.$this->owner->getField('Lat').']}}]}'; + } - return $key; - } + public function DirectionsLink() + { + return '' + .' Get Directions'; + } - public function MapStyle() - { - return MapboxField::config()->get('map_style'); - } - - public function getGeoJSON() - { - return '{"type": "MarkerCollection","features": [{"type": "Feature","icon": "",' - .'"properties": {"content": "'.$this->owner->getTitle().'"},"geometry": {"type": "Point",' - .'"coordinates": ['.$this->owner->getField('Longitude').','.$this->owner->getField('Latitude').']}}]}'; - } - - public function DirectionsLink() - { - return '' - .' Get Directions'; - } - - public function getLatestBlogPosts() - { - return BlogPost::get()->sort('PublishDate DESC'); - } + public function getLatestBlogPosts() + { + return BlogPost::get()->sort('PublishDate DESC'); + } }