From d83f0d2ae0ac0f96534ad752bc2b5531af8549b8 Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Tue, 16 Apr 2013 16:07:41 +0200 Subject: [PATCH] NEW Added WidgetPageExtension --- code/extension/WidgetPageExtension.php | 51 ++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 code/extension/WidgetPageExtension.php diff --git a/code/extension/WidgetPageExtension.php b/code/extension/WidgetPageExtension.php new file mode 100644 index 0000000..79efc9f --- /dev/null +++ b/code/extension/WidgetPageExtension.php @@ -0,0 +1,51 @@ + 'Boolean', + ); + + static $defaults = array( + 'InheritSideBar' => true + ); + + static $has_one = array( + 'SideBar' => 'WidgetArea' + ); + + function updateCMSFields(FieldList $fields) { + $fields->addFieldToTab( + "Root.Widgets", + new CheckboxField("InheritSideBar", 'Inherit Sidebar From Parent') + ); + $fields->addFieldToTab( + "Root.Widgets", + new WidgetAreaEditor("SideBar") + ); + } + + /** + * @return WidgetArea + */ + function SideBarView() { + if( + $this->owner->InheritSideBar + && $this->owner->getParent() + && $this->owner->getParent()->hasMethod('SideBar') + ) { + return $this->owner->getParent()->SideBar(); + } elseif($this->owner->SideBar()->exists()){ + return $this->owner->SideBar(); + } + } + +} \ No newline at end of file