From 1fa3b84702b2110f6a0b3d63d9531c48de0e9e10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Werner=20M=2E=20Krau=C3=9F?= Date: Wed, 28 Oct 2020 11:28:23 +0100 Subject: [PATCH] cannot loop over children with renamed table BlogFilter had some hardcoded references to BlogPost table; when you rename this table, e.g. to "News", some joins broke. fixes #628 --- src/Model/BlogFilter.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/Model/BlogFilter.php b/src/Model/BlogFilter.php index ff771a5..1ea6a52 100644 --- a/src/Model/BlogFilter.php +++ b/src/Model/BlogFilter.php @@ -36,10 +36,11 @@ class BlogFilter extends Lumberjack $stage = '_' . $stage; } + $blogPostTable = DataObject::getSchema()->tableName(BlogPost::class); $dataQuery = $staged->dataQuery() ->innerJoin( - DataObject::getSchema()->tableName(BlogPost::class), - sprintf('"BlogPost%s"."ID" = "SiteTree%s"."ID"', $stage, $stage) + $blogPostTable, + sprintf('"' . $blogPostTable . '%s"."ID" = "SiteTree%s"."ID"', $stage, $stage) ) ->where(sprintf('"PublishDate" < \'%s\'', Convert::raw2sql(DBDatetime::now()))); @@ -65,10 +66,11 @@ class BlogFilter extends Lumberjack $staged = parent::liveChildren($showAll, $onlyDeletedFromStage); if (!$this->shouldFilter() && $this->isBlog() && !Permission::check('VIEW_DRAFT_CONTENT')) { + $blogPostTable = DataObject::getSchema()->tableName(BlogPost::class); $dataQuery = $staged->dataQuery() ->innerJoin( - DataObject::getSchema()->tableName(BlogPost::class), - '"BlogPost_Live"."ID" = "SiteTree_Live"."ID"' + $blogPostTable, + '"' . $blogPostTable . '_Live"."ID" = "SiteTree_Live"."ID"' ) ->where(sprintf('"PublishDate" < \'%s\'', Convert::raw2sql(DBDatetime::now())));