/** * 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; }
public function getSilverStripeNavigator() { $record = $this->getRecord($this->currentPageID(), $this->getRequest()->param('VersionID')); if ($record) { $navigator = new SilverStripeNavigator($record); return $navigator->renderWith($this->getTemplatesWithSuffix('_SilverStripeNavigator')); } else { return false; } }
private function injectNavigatorAndPreview(&$form, &$fields) { $editForm = $fields->fieldByName('EditForm'); //TODO: Do we need to verify we are in the right controller? $template = Controller::curr()->getTemplatesWithSuffix('_SilverStripeNavigator'); $navigator = new SilverStripeNavigator($this->owner->record); $field = new LiteralField('SilverStripeNavigator', $navigator->renderWith($template)); $field->setAllowHTML(true); $fields->push($field); $form->addExtraClass('cms-previewable'); $form->addExtraClass(' cms-previewabledataobject'); $form->removeExtraClass('cms-panel-padded center'); }
/** * Used for preview controls * * @return ArrayData */ public function getSilverStripeNavigator() { $newsletter = $this->record; if ($newsletter) { $navigator = new SilverStripeNavigator($newsletter); //create the link the send a preview email $member = Member::currentUser(); $emailLink = '?email='; if ($member) { $emailLink .= $member->Email; } $navigator->customise(new ArrayData(array('EmailPreviewLink' => $newsletter->Link('emailpreview' . $emailLink)))); Requirements::javascript(NEWSLETTER_DIR . '/javascript/NewsletterAdminEmailPreview.js'); return $navigator->renderWith('NewsletterAdmin_SilverStripeNavigator'); } else { return false; } }
/** * Used for preview controls, mainly links which switch between different states of the page. * * @return ArrayData */ function getSilverStripeNavigator() { $page = $this->currentPage(); if ($page) { $navigator = new SilverStripeNavigator($page); return $navigator->renderWith($this->getTemplatesWithSuffix('_SilverStripeNavigator')); } else { return false; } }