mirror of
https://github.com/a2nt/cms-niceties.git
synced 2024-10-22 11:05:46 +02:00
FIX: MapAPI key
This commit is contained in:
parent
8f8306cc9e
commit
6d82e2826f
@ -42,146 +42,168 @@ 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',
|
||||
'Lng' => 'Decimal(10, 8)',
|
||||
'Lat' => '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', '<img src="'.$img->Link().'" alt="QR code" width="200" style="float:left" />'),
|
||||
]);
|
||||
}
|
||||
public function updateCMSFields(FieldList $fields)
|
||||
{
|
||||
$img = Image::get()->filter([
|
||||
'ParentID' => 0,
|
||||
'FileFilename' => 'qrcode.png',
|
||||
])->first();
|
||||
if ($img) {
|
||||
$fields->addFieldsToTab('Root.Main', [
|
||||
LiteralField::create('QRCode', '<img src="'.$img->Link().'" alt="QR code" width="200" style="float:left" />'),
|
||||
]);
|
||||
}
|
||||
|
||||
$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', '<p class="alert alert-info">No Map API keys specified.</p>')
|
||||
]);
|
||||
}
|
||||
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', '<p class="alert alert-info">No Map API keys specified.</p>')
|
||||
]);
|
||||
}
|
||||
|
||||
/*GoogleMapField::create(
|
||||
$this->owner,
|
||||
'Location',
|
||||
[
|
||||
'show_search_box' => true,
|
||||
]
|
||||
)*/
|
||||
}
|
||||
/*GoogleMapField::create(
|
||||
$this->owner,
|
||||
'Location',
|
||||
[
|
||||
'show_search_box' => true,
|
||||
]
|
||||
)*/
|
||||
}
|
||||
|
||||
public function MapStyle()
|
||||
{
|
||||
return MapboxField::config()->get('map_style');
|
||||
}
|
||||
public function MapStyle()
|
||||
{
|
||||
return MapboxField::config()->get('map_style');
|
||||
}
|
||||
|
||||
public function getGeoJSON()
|
||||
{
|
||||
return '{"type": "MarkerCollection","features": [{"type": "Feature","icon": "<i class=\'fas fa-map-marker-alt\'></i>",'
|
||||
.'"properties": {"content": "'.$this->owner->getTitle().'"},"geometry": {"type": "Point",'
|
||||
.'"coordinates": ['.$this->owner->getField('Lng').','.$this->owner->getField('Lat').']}}]}';
|
||||
}
|
||||
public function getGeoJSON()
|
||||
{
|
||||
return \json_encode([
|
||||
'type' => 'MarkerCollection',
|
||||
'features' => [
|
||||
[
|
||||
'id' => 'SiteConfig' . $this->owner->ID,
|
||||
'type' => 'Feature',
|
||||
'icon' => '<i class="fa-icon fas fa-map-marker-alt"></i>',
|
||||
'properties' => [
|
||||
'content' => $this->owner->renderWith('A2nt/ElementalBasics/Models/MapPin'),
|
||||
],
|
||||
'geometry' => [
|
||||
'type' => 'Point',
|
||||
'coordinates' => [
|
||||
$this->owner->Lng,
|
||||
$this->owner->Lat,
|
||||
],
|
||||
],
|
||||
]
|
||||
]
|
||||
]);
|
||||
}
|
||||
|
||||
public function DirectionsLink()
|
||||
{
|
||||
return '<a href="https://www.google.com/maps/dir/Current+Location/'
|
||||
.$this->owner->getField('Lat').','
|
||||
.$this->owner->getField('Lng').'" class="btn btn-primary btn-directions" target="_blank">'
|
||||
.'<i class="fas fa-road"></i> Get Directions</a>';
|
||||
}
|
||||
public function DirectionsLinkURL()
|
||||
{
|
||||
return 'https://www.google.com/maps/dir/Current+Location/'
|
||||
.$this->owner->Lat.','
|
||||
.$this->owner->Lng;
|
||||
}
|
||||
|
||||
public function getLatestBlogPosts()
|
||||
{
|
||||
return BlogPost::get()->sort('PublishDate DESC');
|
||||
}
|
||||
public function DirectionsLink()
|
||||
{
|
||||
return '<a href="'.$this->DirectionsLinkURL().'" class="btn btn-primary btn-directions" target="_blank">'
|
||||
.'<i class="fas fa-road"></i> Get Directions</a>';
|
||||
}
|
||||
|
||||
public function getLatestBlogPosts()
|
||||
{
|
||||
return BlogPost::get()->sort('PublishDate DESC');
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user