Source of file CarouselSlide.php
Size: 3,814 Bytes - Last Modified: 2021-12-24T05:16:21+00:00
/var/www/docs.ssmods.com/process/src/src/model/CarouselSlide.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 | <?php namespace ilateral\SilverStripe\Carousel\Model; use SilverStripe\ORM\DataObject; use SilverStripe\Assets\Image; use SilverStripe\CMS\Model\SiteTree; /** * Representation of a slide object that can be extended to add extra * data (such as links, additional content, etc) * * @author i-lateral (http://www.i-lateral.com) * @package carousel */ class CarouselSlide extends DataObject { private static $table_name = 'CarouselSlide'; /** * DB Columns * * @var array * @config */ private static $db = [ 'Title' => 'Varchar(99)', 'Sort' => 'Int' ]; /** * Has One relations * * @var array * @config */ private static $has_one = [ 'Parent' => SiteTree::class, 'Image' => Image::class, //'Link' => Link::class ]; /** * Ownership of relations * * @var array */ private static $owns = [ 'Image' ]; /** * Default casting for functions to templates * * @var array * @config */ private static $casting = array( 'Thumbnail' => 'Varchar' ); /** * Summary columns/fields for this object * * @var array * @config */ private static $summary_fields = array( 'Thumbnail' => 'Image', 'Title' => 'Title' ); /** * Default sorting of this object * * @var string * @config */ private static $default_sort = "Sort ASC"; /** * Default image profile to use * * @var string * @config */ private static $default_proile = 'ShortCarousel'; /** * Get fully rendered image for template * * @return HTMLText */ public function getRenderedImage() { $parent = $this->Parent(); $profile = $parent->CarouselProfile; if ($profile) { return $this->Image->{$profile}(); } else { $profile = $this->config()->default_proile; } return $this->Image->{$profile}(); } public function getCMSFields() { $fields = parent::getCMSFields(); $fields->removeByName('ParentID'); $fields->removeByName('Sort'); /*$fields->addFieldToTab( 'Root.Main', LinkField::create('LinkID', 'Link to page or file') );*/ return $fields; } public function getThumbnail() { if($this->Image()) { return $this->Image()->CMSThumbnail(); } else { return '(No Image)'; } } /** * Check parent permissions * * @return Boolean */ public function canView($member = null) { $extended = $this->extend('canView', $member); if($extended && $extended !== null) return $extended; return $this->Parent()->canView($member); } /** * Anyone can create a carousel slide * * @return Boolean */ public function canCreate($member = null, $context = []) { $extended = $this->extend('canCreate', $member, $context); if($extended && $extended !== null) return $extended; return true; } /** * Check parent permissions * * @return Boolean */ public function canEdit($member = null) { $extended = $this->extend('canEdit', $member); if($extended && $extended !== null) return $extended; return $this->Parent()->canEdit($member); } /** * Check parent permissions * * @return Boolean */ public function canDelete($member = null) { $extended = $this->extend('canDelete', $member); if($extended && $extended !== null) return $extended; return $this->Parent()->canEdit($member); } } |