Source of file ContentBlock.php
Size: 2,365 Bytes - Last Modified: 2021-12-23T10:37:51+00:00
/var/www/docs.ssmods.com/process/src/code/model/ContentBlock.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | <?php /** * Models a Content Block - a base class for different types of Content Blocks * * @since 1.0.0 */ class ContentBlock extends DataObject { private static $casting = [ 'RenderBlock' => 'HTMLText' ]; private static $db = [ 'Sort' => 'Int', 'Title' => 'Text', ]; private static $has_one = [ 'ParentPage' => 'SiteTree', ]; private static $default_sort = 'Sort ASC'; public function getCMSFields() { return FieldList::create([ TextField::create('Title') ->setDescription('For CMS Identification') ]); } /** * @return RequiredFields */ public function getCMSValidator() { return RequiredFields::create([ 'Title' ]); } public function onBeforeWrite() { parent::onBeforeWrite(); if (!$this->getField('Title')) { $this->Title = sprintf('New %s', $this->getBlockType()); } } /** * @return string */ public function getTemplateName() { $template = $this->getField('ClassName'); $this->extend('updateTemplateName', $template); return $template; } /** * Renders the block for template * * @return string */ public function RenderBlock() { if (Config::inst()->get('ContentBlock', 'include_bootstrap')) { Requirements::javascript(CONTENTBLOCKS_DIR . '/javascript/lib/bootstrap.min.js'); Requirements::css(CONTENTBLOCKS_DIR . '/css/lib/bootstrap.min.css'); } return $this->renderWith($this->getTemplateName()); } /** * Gets the block type for CMS display * * @return string */ public function getBlockType() { return 'Content Block'; } public function canView($member = null) { return Permission::check('CMS_ACCESS_CMSMain', 'any', $member); } public function canEdit($member = null) { return Permission::check('CMS_ACCESS_CMSMain', 'any', $member); } public function canDelete($member = null) { return Permission::check('CMS_ACCESS_CMSMain', 'any', $member); } public function canCreate($member = null) { return Permission::check('CMS_ACCESS_CMSMain', 'any', $member); } } |