From 32d8fa88c3f5a4c3bd796c634a66073a3a3d5bac Mon Sep 17 00:00:00 2001 From: Tony Air Date: Mon, 22 Apr 2024 14:14:10 +0200 Subject: [PATCH] UPD: remove incompatibles --- src/Elements/MapElement.php | 105 ------------------- src/Elements/SliderElement.php | 186 --------------------------------- src/Models/MapPin.php | 172 ------------------------------ 3 files changed, 463 deletions(-) delete mode 100755 src/Elements/MapElement.php delete mode 100755 src/Elements/SliderElement.php delete mode 100755 src/Models/MapPin.php diff --git a/src/Elements/MapElement.php b/src/Elements/MapElement.php deleted file mode 100755 index 04389cb..0000000 --- a/src/Elements/MapElement.php +++ /dev/null @@ -1,105 +0,0 @@ -remove('HTML'); - - $tab = $fields->findOrMakeTab('Root.MapPins'); - $tab->setTitle('Description'); - $tab->push(HTMLEditorField::create('HTML', 'Content')); - - $fields->addFieldsToTab('Root.Main', [ - NumericField::create('MapZoom', 'Initial Map Zoom (enter a number from 0 to 24)'), - GridField::create( - 'Locations', - 'Locations', - $this->Locations(), - $cfg = GridFieldConfig_RelationEditor::create(100) - ) - ]); - - $cfg->getComponentByType(GridFieldDataColumns::class)->setFieldFormatting([ - 'ShowAtMap' => static function ($v, $obj) { - return $v ? 'YES' : 'NO'; - } - ]); - $cfg->addComponent(new BulkManager()); - - return $fields; - } - - public static function MapAPIKey(): string - { - $type = self::config()->get('map_type'); - - 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; - } - - return $key; - } -} diff --git a/src/Elements/SliderElement.php b/src/Elements/SliderElement.php deleted file mode 100755 index ef17abb..0000000 --- a/src/Elements/SliderElement.php +++ /dev/null @@ -1,186 +0,0 @@ - 'Int', - 'SlidesInRow' => 'Int', - 'ImageOriginalSize' => 'Boolean(0)', - ]; - - private static $extensions = [ - FlexSlider::class, - ]; - - private static $owns = [ - 'Slides', - ]; - - private $items; - - public function getType(): string - { - return _t(__CLASS__ . '.BlockType', self::$singular_name); - } - - protected function ratioSize($size) - { - $count = $this->SlidesInRow; - return ($count > 1) ? $size / $count : $size; - } - - public function getSlideWidth() - { - if ($this->getField('ImageOriginalSize')) { - return null; - } - - return $this->ratioSize(self::config()->get('slide_width')); - } - - public function getSlideHeight() - { - if ($this->getField('ImageOriginalSize')) { - return null; - } - - return $this->ratioSize(self::config()->get('slide_height')); - } - - public function getCMSFields() - { - $fields = parent::getCMSFields(); - - // remove in case you don't need to provide this functionality - $fields->removeByName([ - 'ConfigHD', - 'Animation', - 'Loop', - 'Animate', - 'ThumbnailNav', - 'SliderControlNav', - 'SliderDirectionNav', - 'CarouselControlNav', - 'CarouselDirectionNav', - 'CarouselThumbnailCt', - ]); - - $fields->addFieldsToTab('Root.Settings', [ - CheckboxField::create('ImageOriginalSize', 'Use original image size'), - NumericField::create('Interval', 'Auto-play Interval (sec)'), - NumericField::create('SlidesInRow'), - ]); - - $grid = $fields->dataFieldByName('Slides'); - if ($grid) { - $fields->insertBefore('Slides', LiteralField::create( - 'SlidesNote', - '
Note: to show hidden slide open slide item and uncheck "Hide" checkbox
' - )); - - $config = $grid->getConfig(); - $config->removeComponentsByType(GridField_ActionMenu::class); - - $bulk = new BulkUploader('Image', SlideImage::class, false); - $bulk - ->setUfSetup('setFolderName', 'Uploads/SlideImages'); - //->setUfSetup('getValidator.setAllowedExtensions', ['jpg', 'jpeg', 'png', 'gif']); - $config->addComponent($bulk); - $config->addComponent(new \Colymba\BulkManager\BulkManager()); - - $columns = new GridFieldEditableColumns(); - $columns->setDisplayFields([ - 'Hide' => [ - 'title' => 'Hide it?', - 'field' => CheckboxField::class, - ], - ]); - - $config->addComponent($columns); - } - - return $fields; - } - - /** - * @return mixed - */ - public function getSlideShow() - { - if ($this->items) { - return $this->items; - } - - $date = date('Y-m-d H:i:s'); - $this->items = $this->Slides()->filter([ - 'Hide' => '0', - ])->filterByCallback(static function ($item, $list) use ($date) { - $on = $item->getField('DateOn'); - $off = $item->getField('DateOff'); - - return ($on <= $date) && (!$off || $off > $date); - })->sort('SortOrder'); - - return $this->items; - } - - public function onBeforeWrite() - { - parent::onBeforeWrite(); - - if (!$this->getField('Interval')) { - $this->setField('Interval', 5000); - } - } -} diff --git a/src/Models/MapPin.php b/src/Models/MapPin.php deleted file mode 100755 index d0c560d..0000000 --- a/src/Models/MapPin.php +++ /dev/null @@ -1,172 +0,0 @@ - 'Varchar(255)', - 'ShowAtMap' => 'Boolean(1)', - ]; - - private static $has_one = [ - 'PhoneNumber' => Link::class, - 'Fax' => Link::class, - ]; - - private static $extensions = [ - Addressable::class, - MarkerExtension::class, - Versioned::class, - ]; - - private static $belongs_many_many = [ - 'MapElements' => MapElement::class, - ]; - - private static $default_sort = 'Title ASC, ID DESC'; - - private static $summary_fields = [ - 'Title', - 'Address', - 'ShowAtMap', - ]; - - private static $defaults = [ - 'ShowAtMap' => '1', - 'Suburb' => 'Syracuse', - 'State' => 'NY', - 'Postcode' => '13210', - 'Country' => 'US', - ]; - - public function getCMSFields() - { - $fields = parent::getCMSFields(); - - $fields->removeByName('MapElements'); - - $fields->replaceField( - 'PhoneNumberID', - LinkField::create('PhoneNumber', 'Phone Number', $this, [ - 'types' => ['Phone'] - ]) - ); - - $fields->replaceField( - 'Fax', - LinkField::create('Fax', 'FAX', $this, [ - 'types' => ['Phone'] - ]) - ); - $fields->removeByName(['Map', 'LatLngOverride', 'Lng','Lat']); - - $fields->addFieldsToTab('Root.Main', [ - CheckboxField::create('ShowAtMap', 'Show at the map?'), - CheckboxField::create('LatLngOverride', 'Override Latitude and Longitude?') - ->setDescription('Check this box and save to be able to edit the latitude and longitude manually.'), - MapboxField::create('Map', 'Choose a location', 'Lat', 'Lng'), - ]); - - $this->extend('updateMapPinFields', $fields); - - return $fields; - } - - public function onBeforeWrite() - { - parent::onBeforeWrite(); - - $lng = $this->getField('Lng'); - $lat = $this->getField('Lat'); - - - if (!$this->getField('Country')) { - $this->setField('Country', 'us'); - } - - // geocode - try { - // reverse geocoding get address - if (!$this->hasAddress() && $lng && $lat) { - require_once BASE_PATH . '/app/thirdparty/geocoding-example/php/Mapbox.php'; - $mapbox = new \Mapbox(MapboxField::getAccessToken()); - - // GET Address - $res = $mapbox->reverseGeocode($lng, $lat); - if ($res->success() && $res->getCount()) { - $res = $res->getData(); - if (count($res) && isset($res[0]['place_name'])) { - $details = explode(',', $res[0]['place_name']); - $fields = [ - 'Address', - 'City', - 'State', - //'Country', - ]; - - $n = count($fields); - for ($i = 0; $i < $n; $i++) { - if (!isset($details[$i])) { - continue; - } - - $name = $fields[$i]; - $val = $details[$i]; - - // get postal code - if ($name === 'State') { - $this->setField('PostalCode', substr($val, strrpos($val, ' ')+1)); - } - - $this->setField($name, $val); - } - } - } - } - } catch (\Exception $e) { - } - } -}