Source of file CalendarEntry.php
Size: 4,256 Bytes - Last Modified: 2021-12-23T10:11:12+00:00
/var/www/docs.ssmods.com/process/src/src/CalendarEntry.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 | <?php namespace PurpleSpider\BasicCalendar; use SilverStripe\ORM\FieldType\DBDate; use PurpleSpider\BasicCalendar\CalendarPage; use SilverStripe\Assets\Image; use SilverStripe\Forms\DateField; use SilverStripe\Forms\FileHandleField; use SilverStripe\Forms\TextField; use SilverStripe\Forms\TextareaField; use SilverStripe\ORM\DataObject; use SilverStripe\AssetAdmin\Forms\UploadField; class CalendarEntry extends DataObject { private static $db = [ "Title" => "Text", "Date" => DBDate::class, "Time" => "Varchar(100)", "Description" => "Text", ]; private static $has_one = [ "CalendarPage" => CalendarPage::class, "Image" => Image::class, ]; private static $summary_fields = [ "niceDate" => "Date & Time", "Title" => "Title", "ImageCMSThumb" => "Image", ]; private static $owns = [ "Image" ]; private static $table_name = 'CalendarEntry'; private static $default_sort = "Date ASC, Time ASC"; public function validate() { $result = parent::validate(); if (!$this->Title) { $result->addError('Title is required'); } if (!$this->Date) { $result->addError('Date is required'); } return $result; } public function getCMSFields() { $this->beforeUpdateCMSFields(function ($fields) { $datefield = DateField::create('Date', 'Date'); // $datefield->setConfig('showcalendar', true); // $datefield->setConfig('dateformat', 'dd/MM/yyyy'); $imageField = UploadField::create('Image', 'Image'); $imageField->setAllowedExtensions(array('jpg', 'jpeg', 'png', 'gif')); $imageField->setFolderName('Managed/CalendarImages'); $fields->addFieldToTab('Root.Main', $imageField, "Content"); $fields->addFieldToTab('Root.Main', new TextField('Title', "Event Title")); $fields->addFieldToTab('Root.Main', $datefield); $fields->addFieldToTab('Root.Main', TextField::create('Time', "Time")); $fields->addFieldToTab('Root.Main', new TextareaField('Description')); $fields->addFieldToTab('Root.Main', $imageField); }); $fields = parent::getCMSFields(); $this->extend('updateCMSFields', $fields); $fields->removeFieldFromTab("Root.Main", "CalendarPageID"); return $fields; } public function getMonthDigit() { $date = strtotime($this->Date); return date('m', $date); } public function niceDate() { $dateFormat = $this->obj('Date')->Format('d MMMM y, eee'); if ($this->Time) { return $dateFormat.", ".$this->Time; } return $dateFormat; } public function ImageCMSThumb() { return $this->ImageID ? $this->Image()->Fit(50,20) : ""; } public function Link() { return $this->CalendarPage()->Link()."#".$this->ID; } public function getYear() { $date = strtotime($this->Date); return date('Y', $date); } public function getMonth() { $date = strtotime($this->Date); return date('F', $date); } public function canCreate($members = null, $context = array()) { $extended = $this->extendedCan(__FUNCTION__, $members); if ($extended !== null) { return $extended; } return true; } public function canEdit($members = null, $context = array()) { $extended = $this->extendedCan(__FUNCTION__, $members); if ($extended !== null) { return $extended; } return true; } public function canDelete($members = null, $context = array()) { $extended = $this->extendedCan(__FUNCTION__, $members); if ($extended !== null) { return $extended; } return true; } public function canView($members = null, $context = array()) { $extended = $this->extendedCan(__FUNCTION__, $members); if ($extended !== null) { return $extended; } return true; } } |