From 583e35a409bdee79956ccf70fe478f8116150ad5 Mon Sep 17 00:00:00 2001 From: josephlewisnz Date: Thu, 14 Sep 2023 15:24:39 +1200 Subject: [PATCH] FIX Ensure only live content is indexed via getMainContent() --- src/Service/AlgoliaPageCrawler.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Service/AlgoliaPageCrawler.php b/src/Service/AlgoliaPageCrawler.php index 0aa6843..605aacc 100644 --- a/src/Service/AlgoliaPageCrawler.php +++ b/src/Service/AlgoliaPageCrawler.php @@ -13,6 +13,7 @@ use SilverStripe\Core\Config\Config; use SilverStripe\Core\Config\Configurable; use SilverStripe\Core\Injector\Injector; +use SilverStripe\Versioned\Versioned; use SilverStripe\View\Requirements; use SilverStripe\View\SSViewer; use Throwable; @@ -64,6 +65,10 @@ public function getMainContent(): string $useXpath = false; $selector = $this->config()->get('content_element_tag'); } + + $originalStage = Versioned::get_stage(); + //Always set to live to ensure we don't pick up draft content in our render eg. draft elemental blocks + Versioned::set_stage('Live'); // Enable frontend themes in order to correctly render the elements as // they would be for the frontend @@ -117,6 +122,8 @@ public function getMainContent(): string Requirements::restore(); Config::unnest(); + Versioned::set_stage($originalStage); + return $output; } }