Source of file ModularPage.php
Size: 1,737 Bytes - Last Modified: 2021-12-23T10:10:54+00:00
/var/www/docs.ssmods.com/process/src/code/ModularPage.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | <?php /** * @package modularpage */ /** * Base page class for ModularPage */ class ModularPage extends Page { private static $icon = "modularpage/images/modularpage-file.png"; private static $description = "A page made up of content modules"; private static $db = array(); private static $defaults = array(); private static $has_one = array(); private static $has_many = array( 'ContentModules' => 'ContentModule', ); public function getCMSFields() { $fields = parent::getCMSFields(); $fields->removeByName('Content'); //$fields->addFieldToTab('Root.Main', HTMLEditorField::create('Content')->performReadonlyTransformation() , 'Metadata'); $conf = GridFieldConfig_RecordEditor::create(); $conf->addComponent(new GridFieldSortableRows('SortOrder')); $fields->addFieldToTab('Root.Main', new GridField('ContentModules', 'Content', $this->ContentModules()->sort('SortOrder'), $conf), 'Metadata'); return $fields; } public function PublishedContentModules() { return ContentModule::get()->filter(array( 'ModularPageID' => $this->ID, 'Published' => 1 ))->sort('SortOrder'); } private function generateContent() { $this->Content = ''; $contentModules = $this->PublishedContentModules(); foreach ($contentModules as $module) { $this->Content.= $module->Show(); } return $this->Content; } public function onBeforeWrite() { $this->generateContent(); parent::onBeforeWrite(); } } class ModularPage_Controller extends Page_Controller { } |