Source of file PageModuleVersionedDataObjectDetailsForm.php
Size: 2,094 Bytes - Last Modified: 2021-12-23T10:53:22+00:00
/var/www/docs.ssmods.com/process/src/code/PageModuleVersionedDataObjectDetailsForm.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | <?php /** * Class PageModuleVersionedDataObjectDetailsForm. */ class PageModuleVersionedDataObjectDetailsForm extends VersionedDataObjectDetailsForm { } /** * Class PageModuleVersionedDataObjectDetailsForm_ItemRequest. */ class PageModuleVersionedDataObjectDetailsForm_ItemRequest extends VersionedDataObjectDetailsForm_ItemRequest { private static $allowed_actions = array( 'edit', 'view', 'ItemEditForm', ); /** * Additional magic happens here. Trick LeftAndMain into thinking we're a previewable SiteTree object. * * @return Form */ public function ItemEditForm() { Requirements::javascript(MODULATOR_PATH.'/javascript/LeftAndMain.Preview.js'); $form = parent::ItemEditForm(); $record = $this->getRecord(); // Hide the 'Save & publish' button if we're on a brand new module. if ($record && $record->ID == 0) { $actions = $form->Actions(); // Remove the publish button on the pre-module state $actions->removeByName('action_publish'); // Remove the save action if there are no sub-classes to instantiate $classes = ClassInfo::subclassesFor('PageModule'); unset($classes['PageModule']); if (!count($classes)) { $actions->removeByName('action_save'); } } // Enable CMS preview // .cms-previewable enables the preview panel in the front-end // .cms-pagemodule CSS class is used by our javascript to handle previews if ($form && is_object($form)) { $form->addExtraClass('cms-previewable cms-pagemodule'); } // Creat a navigaor and point it at the parent page $navigator = new SilverStripeNavigator($this->record->Page()); $navField = new LiteralField('SilverStripeNavigator', $navigator->renderWith('LeftAndMain_SilverStripeNavigator')); $navField->setAllowHTML(true); $fields = $form->Fields(); $fields->push($navField); return $form; } } |