From 3c0ded63b97bbba168453ef8e202b8bd1092bfc3 Mon Sep 17 00:00:00 2001 From: clindsay Date: Tue, 14 May 2019 10:37:08 -0700 Subject: [PATCH] move limit to before extension point. moved it into an if statement --- src/Widgets/BlogArchiveWidget.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Widgets/BlogArchiveWidget.php b/src/Widgets/BlogArchiveWidget.php index 61c47f0..fdb8a4f 100644 --- a/src/Widgets/BlogArchiveWidget.php +++ b/src/Widgets/BlogArchiveWidget.php @@ -16,6 +16,7 @@ use SilverStripe\ORM\Queries\SQLSelect; use SilverStripe\Versioned\Versioned; use SilverStripe\View\ArrayData; use SilverStripe\Widgets\Model\Widget; +use SilverStripe\Core\Convert; if (!class_exists(Widget::class)) { return; @@ -124,7 +125,11 @@ class BlogArchiveWidget extends Widget $query = SQLSelect::create($fields, '"BlogPost' . $suffix . '"') ->addGroupBy($publishDate) ->addOrderBy('"PublishDate" DESC') - ->addWhere(['"PublishDate" <= ?' => DBDatetime::now()->Format(DBDatetime::ISO_DATETIME)]); + ->addLeftJoin('SiteTree' . $suffix, '"SiteTree' . $suffix . '"."ID" = "BlogPost' . $suffix . '"."ID"') + ->addWhere([ + '"PublishDate" <= ?' => DBDatetime::now()->Format(DBDatetime::ISO_DATETIME), + '"SiteTree' . $suffix . '"."ParentID"' => $this->BlogID, + ]); $posts = $query->execute(); $result = ArrayList::create(); @@ -148,8 +153,12 @@ class BlogArchiveWidget extends Widget ])); } + if ($this->NumberToDisplay) { + $result = $result->limit($this->NumberToDisplay); + } + $this->extend('updateGetArchive', $result); - return $result->limit($this->NumberToDisplay); + return $result; } }