Skip to content
Snippets Groups Projects
Commit 6d1b37f2 authored by Demian Katz's avatar Demian Katz
Browse files

Implemented activateAllFacets() for Summon\Params.

- Refactored some shared functionality to Base\Params.
parent 8c536f3c
No related merge requests found
...@@ -1428,4 +1428,33 @@ class Params implements ServiceLocatorAwareInterface ...@@ -1428,4 +1428,33 @@ class Params implements ServiceLocatorAwareInterface
} }
return $this->query; return $this->query;
} }
/**
* Initialize facet settings for the specified configuration sections.
*
* @param string $facetList Config section containing fields to activate
* @param string $facetSettings Config section containing related settings
* @param string $cfgFile Name of configuration to load
*
* @return bool True if facets set, false if no settings found
*/
protected function initFacetList($facetList, $facetSettings, $cfgFile = 'facets')
{
$config = $this->getServiceLocator()->get('VuFind\Config')->get($cfgFile);
if (!isset($config->$facetList)) {
return false;
}
if (isset($config->$facetSettings->orFacets)) {
$orFields
= array_map('trim', explode(',', $config->$facetSettings->orFacets));
} else {
$orFields = array();
}
foreach ($config->$facetList as $key => $value) {
$useOr = (isset($orFields[0]) && $orFields[0] == '*')
|| in_array($key, $orFields);
$this->addFacet($key, $value, $useOr);
}
return true;
}
} }
\ No newline at end of file
...@@ -234,32 +234,19 @@ class Params extends \VuFind\Search\Base\Params ...@@ -234,32 +234,19 @@ class Params extends \VuFind\Search\Base\Params
* *
* @param string $facetList Config section containing fields to activate * @param string $facetList Config section containing fields to activate
* @param string $facetSettings Config section containing related settings * @param string $facetSettings Config section containing related settings
* @param string $cfgFile Name of configuration to load
* *
* @return bool True if facets set, false if no settings found * @return bool True if facets set, false if no settings found
*/ */
protected function initFacetList($facetList, $facetSettings) protected function initFacetList($facetList, $facetSettings, $cfgFile = 'facets')
{ {
$config = $this->getServiceLocator()->get('VuFind\Config')->get('facets'); $config = $this->getServiceLocator()->get('VuFind\Config')->get('facets');
if (!isset($config->$facetList)) {
return false;
}
if (isset($config->$facetSettings->orFacets)) {
$orFields
= array_map('trim', explode(',', $config->$facetSettings->orFacets));
} else {
$orFields = array();
}
foreach ($config->$facetList as $key => $value) {
$useOr = (isset($orFields[0]) && $orFields[0] == '*')
|| in_array($key, $orFields);
$this->addFacet($key, $value, $useOr);
}
if (isset($config->$facetSettings->facet_limit) if (isset($config->$facetSettings->facet_limit)
&& is_numeric($config->$facetSettings->facet_limit) && is_numeric($config->$facetSettings->facet_limit)
) { ) {
$this->setFacetLimit($config->$facetSettings->facet_limit); $this->setFacetLimit($config->$facetSettings->facet_limit);
} }
return true; return parent::initFacetList($facetList, $facetSettings, $cfgFile);
} }
/** /**
......
...@@ -296,4 +296,21 @@ class Params extends \VuFind\Search\Base\Params ...@@ -296,4 +296,21 @@ class Params extends \VuFind\Search\Base\Params
return $filter; return $filter;
} }
/**
* Load all available facet settings. This is mainly useful for showing
* appropriate labels when an existing search has multiple filters associated
* with it.
*
* @param string $preferredSection Section to favor when loading settings; if
* multiple sections contain the same facet, this section's description will
* be favored.
*
* @return void
*/
public function activateAllFacets($preferredSection = false)
{
$this->initFacetList('Facets', 'Results_Settings', 'Summon');
$this->initFacetList('Advanced_Facets', 'Advanced_Facet_Settings', 'Summon');
}
} }
\ No newline at end of file
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment