From 697ed18dbdbb9ebe960c8151e2744de810e7e144 Mon Sep 17 00:00:00 2001 From: Frank Mullenger Date: Tue, 3 Jul 2012 13:16:18 +1200 Subject: [PATCH 1/2] Using PaginatedList for blog entries. --- code/BlogTree.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/code/BlogTree.php b/code/BlogTree.php index 40655fc..a04633f 100644 --- a/code/BlogTree.php +++ b/code/BlogTree.php @@ -113,8 +113,8 @@ class BlogTree extends Page { "INHERIT" => "Take value from parent Blog Tree" ))); - $fields->addFieldToTab("Root.Widgets", new CheckboxField("InheritSideBar", 'Inherit Sidebar From Parent')); - $fields->addFieldToTab("Root.Widgets", new WidgetAreaEditor("SideBar")); + //$fields->addFieldToTab("Root.Widgets", new CheckboxField("InheritSideBar", 'Inherit Sidebar From Parent')); + //$fields->addFieldToTab("Root.Widgets", new WidgetAreaEditor("SideBar")); return $fields; } @@ -151,7 +151,7 @@ class BlogTree extends Page { * @param string $where * @return DataObjectSet */ - public function Entries($limit = '', $tag = '', $date = '', $retrieveCallback = null, $filter = '') { + public function Entries($tag = '', $date = '', $retrieveCallback = null, $filter = '') { $tagCheck = ''; $dateCheck = ''; @@ -208,8 +208,12 @@ class BlogTree extends Page { // By specifying a callback, you can alter the SQL, or sort on something other than date. if($retrieveCallback) return call_user_func($retrieveCallback, 'BlogEntry', $filter, $limit, $order); - - return DataObject::get('BlogEntry', $filter, $order, '', $limit); + + $entries = BlogEntry::get() + ->where($filter) + ->sort($order); + + return new PaginatedList($entries, Controller::curr()->request); } } @@ -264,7 +268,9 @@ class BlogTree_Controller extends Page_Controller { $date = $this->SelectedDate(); - return $this->Entries("$start,$limit", $this->SelectedTag(), ($date) ? $date : '', null, $filter); + $list = $this->Entries($this->SelectedTag(), ($date) ? $date : '', null, $filter); + $list->setPageLength($limit); + return $list; } /** From c3d9ee41e7bb0b0c97ae5b727a5edcd5eba50ff2 Mon Sep 17 00:00:00 2001 From: Frank Mullenger Date: Tue, 3 Jul 2012 20:16:23 +1200 Subject: [PATCH 2/2] ENHANCEMENT: Paginated list for blog entries. Check WidgetAreaEditor class exists. --- code/BlogTree.php | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/code/BlogTree.php b/code/BlogTree.php index a04633f..fe39f60 100644 --- a/code/BlogTree.php +++ b/code/BlogTree.php @@ -113,8 +113,8 @@ class BlogTree extends Page { "INHERIT" => "Take value from parent Blog Tree" ))); - //$fields->addFieldToTab("Root.Widgets", new CheckboxField("InheritSideBar", 'Inherit Sidebar From Parent')); - //$fields->addFieldToTab("Root.Widgets", new WidgetAreaEditor("SideBar")); + $fields->addFieldToTab("Root.Widgets", new CheckboxField("InheritSideBar", 'Inherit Sidebar From Parent')); + if (class_exists('WidgetAreaEditor')) $fields->addFieldToTab("Root.Widgets", new WidgetAreaEditor("SideBar")); return $fields; } @@ -151,7 +151,7 @@ class BlogTree extends Page { * @param string $where * @return DataObjectSet */ - public function Entries($tag = '', $date = '', $retrieveCallback = null, $filter = '') { + public function Entries($limit = '', $tag = '', $date = '', $retrieveCallback = null, $filter = '') { $tagCheck = ''; $dateCheck = ''; @@ -213,7 +213,9 @@ class BlogTree extends Page { ->where($filter) ->sort($order); - return new PaginatedList($entries, Controller::curr()->request); + $list = new PaginatedList($entries, Controller::curr()->request); + $list->setPageLength($limit); + return $list; } } @@ -263,14 +265,10 @@ class BlogTree_Controller extends Page_Controller { else if(isset($_GET['authorID'])) { $filter .= " \"BlogEntry\".\"AuthorID\" = '". Convert::raw2sql($_GET['authorID']). "'"; } - - $start = isset($_GET['start']) ? (int) $_GET['start'] : 0; - + $date = $this->SelectedDate(); - $list = $this->Entries($this->SelectedTag(), ($date) ? $date : '', null, $filter); - $list->setPageLength($limit); - return $list; + return $this->Entries($limit, $this->SelectedTag(), ($date) ? $date : '', null, $filter); } /**