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
Loading
Loading
Loading
Loading
+19 −1
Original line number Diff line number Diff line
@@ -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;
  }

}
+1 −1
Original line number Diff line number Diff line
@@ -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();
  }
+0 −4
Original line number Diff line number Diff line
@@ -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.
+9 −0
Original line number Diff line number Diff line
@@ -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;

}
+7 −0
Original line number Diff line number Diff line
@@ -152,4 +152,11 @@ abstract class UrlProcessorPluginBase extends ProcessorPluginBase implements Url
    }
  }

  /**
   * {@inheritdoc}
   */
  public function getRequest(): Request {
    return $this->request;
  }

}