Source of file ContentModuleArea.php
Size: 1,400 Bytes - Last Modified: 2021-12-24T06:40:27+00:00
/var/www/docs.ssmods.com/process/src/src/ContentModuleArea.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | <?php namespace ChristopherBolt\ContentModules; use SilverStripe\ORM\DataObject; use ChristopherBolt\PublishWithMe\PublishWithMe; use SilverStripe\Versioned\Versioned; class ContentModuleArea extends DataObject { private static $table_name = 'ContentModuleArea'; private static $has_many = array( 'Modules' => ContentModule::class, ); private static $search_index = array( 'Modules' ); private static $owns = array( 'Modules' ); private static $extensions = array( PublishWithMe::class, Versioned::class, ); function TemplateNames() { $parentClasses = class_parents($this->ClassName); $templates = array(); $templates[] = $this->ClassName; foreach($parentClasses as $className) { if ( $className == 'DataObject') break; $templates[] = $className; } return $templates; } function forTemplate() { $templates = $this->TemplateNames(); return $this->renderWith($templates); } // Duplicate function onAfterDuplicate($page) { if ($this->owner->ID < 1) { // Can only add relations if this exists. return; } // Has many relations to duplicate... $relations = array('Modules'); $this->owner->_inDuplication = true; foreach ($relations as $relation) { foreach($page->$relation() as $item) { $new = $item->duplicate(); $this->owner->$relation()->add($new); } } unset($this->owner->_inDuplication); } } |