diff --git a/widgets/Widget.php b/widgets/Widget.php index 32d531ab7..c1dd5236f 100755 --- a/widgets/Widget.php +++ b/widgets/Widget.php @@ -12,7 +12,12 @@ */ class Widget extends DataObject { static $db = array( - "Sort" => "Int" + "Sort" => "Int", + "Enabled" => "Boolean" + ); + + static $defaults = array( + 'Enabled' => true ); static $has_one = array( @@ -22,7 +27,6 @@ class Widget extends DataObject { static $has_many = array(); static $many_many = array(); static $belongs_many_many = array(); - static $defaults = array(); static $default_sort = "Sort"; diff --git a/widgets/WidgetArea.php b/widgets/WidgetArea.php index 8c194f43e..e33b5f7de 100644 --- a/widgets/WidgetArea.php +++ b/widgets/WidgetArea.php @@ -18,6 +18,8 @@ class WidgetArea extends DataObject { static $belongs_many_many = array(); + public $template = __CLASS__; + /** * Used in template instead of {@link Widgets()} * to wrap each widget in its controller, making @@ -45,15 +47,19 @@ class WidgetArea extends DataObject { } function Items() { - return $this->Widgets(); + return $this->getComponents('Widgets'); } function ItemsToRender() { - return $this->Items(); + return $this->getComponents('Widgets', "Widget.Enabled = 1"); } function forTemplate() { - return $this->renderWith($this->class); + return $this->renderWith($this->template); + } + + function setTemplate($template) { + $this->template = $template; } function onBeforeDelete() {