From 45e38db411a87883ece952573dfd32fd105d0e19 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 8 Sep 2026 11:45:23 -0400 Subject: [PATCH 1/3] Use config array instead of object for Facet Search Params --- .../src/VuFind/Search/Params/FacetLimitTrait.php | 13 ++++++------- .../VuFind/Search/Params/FacetRestrictionsTrait.php | 10 ++++------ 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/module/VuFind/src/VuFind/Search/Params/FacetLimitTrait.php b/module/VuFind/src/VuFind/Search/Params/FacetLimitTrait.php index fe702f68b337..2ce941cdf553 100644 --- a/module/VuFind/src/VuFind/Search/Params/FacetLimitTrait.php +++ b/module/VuFind/src/VuFind/Search/Params/FacetLimitTrait.php @@ -29,7 +29,6 @@ namespace VuFind\Search\Params; -use VuFind\Config\Config; use function in_array; @@ -68,18 +67,18 @@ trait FacetLimitTrait protected int $hierarchicalFacetLimit = -1; /** - * Initialize facet limit from a Config object. + * Initialize facet limit from a Config array. * - * @param ?Config $config Configuration + * @param ?array $config Configuration * * @return void */ - protected function initFacetLimitsFromConfig(?Config $config = null): void + protected function initFacetLimitsFromConfig(?array $config = null): void { - if (is_numeric($config->facet_limit ?? null)) { - $this->setFacetLimit($config->facet_limit); + if (is_numeric($config['facet_limit'] ?? null)) { + $this->setFacetLimit($config['facet_limit']); } - foreach ($config->facet_limit_by_field ?? [] as $k => $v) { + foreach ($config['facet_limit_by_field'] ?? [] as $k => $v) { $this->facetLimitByField[$k] = $v; } } diff --git a/module/VuFind/src/VuFind/Search/Params/FacetRestrictionsTrait.php b/module/VuFind/src/VuFind/Search/Params/FacetRestrictionsTrait.php index ebbdcf41098c..3ff71556119d 100644 --- a/module/VuFind/src/VuFind/Search/Params/FacetRestrictionsTrait.php +++ b/module/VuFind/src/VuFind/Search/Params/FacetRestrictionsTrait.php @@ -30,8 +30,6 @@ namespace VuFind\Search\Params; -use VuFind\Config\Config; - /** * Trait to add facet limiting settings to a Params object. * @@ -60,16 +58,16 @@ trait FacetRestrictionsTrait /** * Initialize facet prefix and matches from a Config object. * - * @param ?Config $config Configuration + * @param ?array $config Configuration * * @return void */ - protected function initFacetRestrictionsFromConfig(?Config $config = null): void + protected function initFacetRestrictionsFromConfig(?array $config = null): void { - foreach ($config->facet_prefix_by_field ?? [] as $k => $v) { + foreach ($config['facet_prefix_by_field'] ?? [] as $k => $v) { $this->facetPrefixByField[$k] = $v; } - foreach ($config->facet_matches_by_field ?? [] as $k => $v) { + foreach ($config['facet_matches_by_field'] ?? [] as $k => $v) { $this->facetMatchesByField[$k] = $v; } } From 9885056205b3d0418ef68510c05f8e8c9b29501e Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 8 Sep 2026 11:46:35 -0400 Subject: [PATCH 2/3] composer fix --- module/VuFind/src/VuFind/Search/Params/FacetLimitTrait.php | 1 - 1 file changed, 1 deletion(-) diff --git a/module/VuFind/src/VuFind/Search/Params/FacetLimitTrait.php b/module/VuFind/src/VuFind/Search/Params/FacetLimitTrait.php index 2ce941cdf553..13902fcb793e 100644 --- a/module/VuFind/src/VuFind/Search/Params/FacetLimitTrait.php +++ b/module/VuFind/src/VuFind/Search/Params/FacetLimitTrait.php @@ -29,7 +29,6 @@ namespace VuFind\Search\Params; - use function in_array; /** From 4a653744c73ba00680ec5653596c53e168a38f13 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 9 Sep 2026 11:00:34 -0400 Subject: [PATCH 3/3] change param calls --- module/VuFind/src/VuFind/Search/Solr/Params.php | 10 +++++++--- module/VuFind/src/VuFind/Search/Summon/Params.php | 8 ++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/module/VuFind/src/VuFind/Search/Solr/Params.php b/module/VuFind/src/VuFind/Search/Solr/Params.php index b280b85dcb21..1b17c1472557 100644 --- a/module/VuFind/src/VuFind/Search/Solr/Params.php +++ b/module/VuFind/src/VuFind/Search/Solr/Params.php @@ -178,8 +178,10 @@ public function __construct( // Use basic facet limit by default, if set: $config = $configManager->getConfigObject($options->getFacetsIni()); - $this->initFacetLimitsFromConfig($config->Results_Settings ?? null); - $this->initFacetRestrictionsFromConfig($config->Results_Settings ?? null); + $resultsSettings = isset($config->Results_Settings) + ? $config->Results_Settings->toArray() : null; + $this->initFacetLimitsFromConfig($resultsSettings); + $this->initFacetRestrictionsFromConfig($resultsSettings); if (isset($config->LegacyFields)) { $this->facetAliases = $config->LegacyFields->toArray(); } @@ -442,7 +444,9 @@ protected function initFacetList(string $facetList, string $facetSettings, ?stri { $facetConfigName = $cfgFile ?? $this->getOptions()->getFacetsIni(); $config = ($facetConfigName !== null) ? $this->configManager->getConfigObject($facetConfigName) : []; - $this->initFacetLimitsFromConfig($config->$facetSettings ?? null); + $facetSettingsConfig = isset($config->$facetSettings) + ? $config->$facetSettings->toArray() : null; + $this->initFacetLimitsFromConfig($facetSettingsConfig); return parent::initFacetList($facetList, $facetSettings, $cfgFile); } diff --git a/module/VuFind/src/VuFind/Search/Summon/Params.php b/module/VuFind/src/VuFind/Search/Summon/Params.php index ed8f3658f39e..bdacf4a54367 100644 --- a/module/VuFind/src/VuFind/Search/Summon/Params.php +++ b/module/VuFind/src/VuFind/Search/Summon/Params.php @@ -89,7 +89,9 @@ public function __construct(\VuFind\Search\Base\Options $options, ConfigManagerI { parent::__construct($options, $configManager); $config = $configManager->getConfigObject($options->getFacetsIni()); - $this->initFacetLimitsFromConfig($config->Facet_Settings ?? null); + $facetSettings = isset($config->Facet_Settings) + ? $config->Facet_Settings->toArray() : null; + $this->initFacetLimitsFromConfig($facetSettings); } /** @@ -406,7 +408,9 @@ protected function initFacetList(string $facetList, string $facetSettings, ?stri // can be found in Facet_Settings. $limitSection = ($facetSettings === 'Results_Settings') ? 'Facet_Settings' : $facetSettings; - $this->initFacetLimitsFromConfig($config->$limitSection ?? null); + $facetLimitConfig = isset($config->$limitSection) + ? $config->$limitSection->toArray() : null; + $this->initFacetLimitsFromConfig($facetLimitConfig); return parent::initFacetList($facetList, $facetSettings, $cfgFile); }