Source of file MapBoxSliceAddress.php
Size: 2,487 Bytes - Last Modified: 2021-12-24T06:34:00+00:00
/var/www/docs.ssmods.com/process/src/src/MapBoxSliceAddress.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | <?php namespace Broarm\PageSlices; use SilverStripe\Forms\DropdownField; use SilverStripe\Forms\TextField; use SilverStripe\ORM\DataObject; use Symbiote\Addressable\Addressable; use Symbiote\Addressable\Geocodable; /** * class MapBoxSliceAddress * @author Bram de Leeuw * * @mixin Addressable * @mixin Geocodable * * @method MapBoxSlice MapBoxSlice() * @property string Title * @property string Link * @property string Target * @property int Sort */ class MapBoxSliceAddress extends DataObject { private static $table_name = 'MapBoxSliceAddress'; private static $db = [ 'Title' => 'Varchar', 'Link' => 'Varchar', 'Target' => 'Enum("_self,_blank", "_self")', 'Sort' => 'Int' ]; private static $default_sort = 'Sort ASC'; private static $has_one = [ 'MapBoxSlice' => MapBoxSlice::class ]; private static $summary_fields = [ 'Title' => 'Title', 'Address' => 'FullAddress' ]; private static $translate = [ 'Title' ]; public function getCMSFields() { $fields = parent::getCMSFields(); $fields->addFieldsToTab('Root.Main', [ TextField::create('Title'), TextField::create('Link'), DropdownField::create('Target', 'Open link in', $this->getTargetOptions()) ]); $this->extend('updateCMSFields', $fields); if (($addressTab = $fields->fieldByName('Root.Address')) && $addressFields = $addressTab->Fields()) { $fields->removeByName('Address'); $fields->addFieldsToTab('Root.Main', $addressFields); } $fields->removeByName(['Sort', 'MapBoxSliceID']); return $fields; } /** * Translate the option labels * * @return array */ public function getTargetOptions() { return array_map(function ($option) { return _t(__CLASS__ . ".$option", $option); }, $this->dbObject('Target')->enumValues()); } public function canView($member = null) { return $this->MapBoxSlice()->canView($member); } public function canEdit($member = null) { return $this->MapBoxSlice()->canEdit($member); } public function canDelete($member = null) { return $this->MapBoxSlice()->canDelete($member); } public function canCreate($member = null, $context = []) { return $this->MapBoxSlice()->canCreate($member, $context); } } |