diff --git a/src/Search/Variants/SearchVariantSubsites.php b/src/Search/Variants/SearchVariantSubsites.php index e58c9da..aea6008 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; @@ -48,7 +49,7 @@ class SearchVariantSubsites extends SearchVariant public function currentState() { - return (string) SubsiteState::singleton()->getSubsiteId(); + return SubsiteState::singleton()->getSubsiteId(); } public function reindexStates() @@ -71,6 +72,12 @@ class SearchVariantSubsites extends SearchVariant return; } + if (is_numeric($state)) { + $state = (int) $state; + } 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 // like Subsite::changeSubsite would do. SubsiteState::singleton()->setSubsiteId($state);