From 4f92bcdbf507c374e5109ea1b9a6f4691b01923d Mon Sep 17 00:00:00 2001 From: Sabina Talipova Date: Wed, 15 Feb 2023 19:07:06 +1300 Subject: [PATCH 1/2] FIX Broken builds --- src/Search/Variants/SearchVariantSubsites.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Search/Variants/SearchVariantSubsites.php b/src/Search/Variants/SearchVariantSubsites.php index e58c9da..9c1c186 100644 --- a/src/Search/Variants/SearchVariantSubsites.php +++ b/src/Search/Variants/SearchVariantSubsites.php @@ -2,6 +2,7 @@ namespace SilverStripe\FullTextSearch\Search\Variants; +use InvalidArgumentException; use SilverStripe\Assets\File; use SilverStripe\CMS\Model\SiteTree; use SilverStripe\FullTextSearch\Search\Indexes\SearchIndex; @@ -71,6 +72,12 @@ class SearchVariantSubsites extends SearchVariant return; } + if (is_numeric($state)) { + $state = (int) $state; + } else { + throw new InvalidArgumentException("Invalid state ID. State ID should be number."); + } + // Note: Setting directly to the SubsiteState because we don't want the subsite ID to be persisted // like Subsite::changeSubsite would do. SubsiteState::singleton()->setSubsiteId($state); From 72dc54b0f852e9384b6e75dd33336dc5e997b208 Mon Sep 17 00:00:00 2001 From: Guy Sartorelli <36352093+GuySartorelli@users.noreply.github.com> Date: Thu, 16 Feb 2023 12:33:45 +1300 Subject: [PATCH 2/2] FIX Always use ?int for subsite state (#341) --- src/Search/Variants/SearchVariantSubsites.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Search/Variants/SearchVariantSubsites.php b/src/Search/Variants/SearchVariantSubsites.php index 9c1c186..aea6008 100644 --- a/src/Search/Variants/SearchVariantSubsites.php +++ b/src/Search/Variants/SearchVariantSubsites.php @@ -49,7 +49,7 @@ class SearchVariantSubsites extends SearchVariant public function currentState() { - return (string) SubsiteState::singleton()->getSubsiteId(); + return SubsiteState::singleton()->getSubsiteId(); } public function reindexStates() @@ -74,8 +74,8 @@ class SearchVariantSubsites extends SearchVariant if (is_numeric($state)) { $state = (int) $state; - } else { - throw new InvalidArgumentException("Invalid state ID. State ID should be number."); + } elseif ($state !== null) { + throw new InvalidArgumentException("Invalid state ID. State ID should be number or null."); } // Note: Setting directly to the SubsiteState because we don't want the subsite ID to be persisted