Skip to content
Snippets Groups Projects
Commit 3f894d75 authored by Markus Kalkbrenner's avatar Markus Kalkbrenner Committed by Markus Kalkbrenner
Browse files

Issue #3269633 by mkalkbrenner: ActiveFiltersParsed event should know the configured filter key

parent 3a132248
No related branches found
No related tags found
1 merge request!2Apply patch 2937191-37.
......@@ -34,6 +34,13 @@ final class ActiveFiltersParsed extends Event {
*/
private $queryParameters;
/**
* The facet parameter filter key.
*
* @var string
*/
private $filterKey;
/**
* QueryStringCreated constructor.
*
......@@ -44,10 +51,11 @@ final class ActiveFiltersParsed extends Event {
* @param \Symfony\Component\HttpFoundation\ParameterBag $queryParameters
* The get parameters to use.
*/
public function __construct($facetsource_id, array $activeFilters, ParameterBag $queryParameters) {
public function __construct($facetsource_id, array $activeFilters, ParameterBag $queryParameters, $filter_key) {
$this->facetsourceId = $facetsource_id;
$this->queryParameters = $queryParameters;
$this->activeFilters = $activeFilters;
$this->filterKey = $filter_key;
}
/**
......@@ -93,4 +101,14 @@ final class ActiveFiltersParsed extends Event {
return $this->queryParameters;
}
/**
* Get the facet parameter filter key.
*
* @return string
* The facet parameter filter key.
*/
public function getFilterKey() {
return $this->filterKey;
}
}
......@@ -354,7 +354,7 @@ class QueryString extends UrlProcessorPluginBase {
}
// Allow other modules to alter the parsed active filters.
$event = new ActiveFiltersParsed($facet_source_id, $active_filters, $this->request->query);
$event = new ActiveFiltersParsed($facet_source_id, $active_filters, $url_parameters, $this->filterKey);
$this->eventDispatcher->dispatch($event);
$this->activeFilters = $event->getActiveFilters();
}
......
......@@ -65,10 +65,6 @@ class LinksWidget extends WidgetPluginBase {
$url_processor = $urlProcessorManager->createInstance($facet->getFacetSourceConfig()->getUrlProcessorName(), ['facet' => $facet]);
$active_filters = $url_processor->getActiveFilters();
if (isset($active_filters[''])) {
unset($active_filters['']);
}
unset($active_filters[$facet->id()]);
// Only if there are still active filters, use url generator.
......
......@@ -3,6 +3,7 @@
namespace Drupal\facets\UrlProcessor;
use Drupal\facets\FacetInterface;
use Symfony\Component\HttpFoundation\Request;
/**
* Interface UrlProcessorInterface.
......@@ -79,4 +80,12 @@ interface UrlProcessorInterface {
*/
public function setActiveFilters(array $active_filters);
/**
* Returns the request.
*
* @return \Symfony\Component\HttpFoundation\Request
* The request.
*/
public function getRequest(): Request;
}
......@@ -152,4 +152,11 @@ abstract class UrlProcessorPluginBase extends ProcessorPluginBase implements Url
}
}
/**
* {@inheritdoc}
*/
public function getRequest(): Request {
return $this->request;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment