Commit 957195ef authored by Markus Kalkbrenner's avatar Markus Kalkbrenner Committed by Markus Kalkbrenner
Browse files

Issue #3269403 by mkalkbrenner: "Combine facets" processor might produce...

Issue #3269403 by mkalkbrenner: "Combine facets" processor might produce unexpected results if applied too late
parent 588a6b4b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -448,7 +448,7 @@ class DefaultFacetManager {
   *   The built facet.
   */
  public function returnBuiltFacet(FacetInterface $facet) {
    return $this->builtFacets[$facet->id()] ?? $this->processBuild($facet);
    return $this->processBuild($facet);
  }

  /**
+4 −4
Original line number Diff line number Diff line
@@ -142,7 +142,7 @@ class CombineFacetProcessor extends ProcessorPluginBase implements BuildProcesso
      return $results;
    }

    $results = $facet->getResultsKeyedByRawValue();
    $keyed_results = $facet->getResultsKeyedByRawValue($results);

    foreach ($enabled_combinations as $facet_id => $settings) {
      /** @var \Drupal\facets\Entity\Facet $current_facet */
@@ -151,15 +151,15 @@ class CombineFacetProcessor extends ProcessorPluginBase implements BuildProcesso

      switch ($settings['mode']) {
        case 'union':
          $results = $results + $current_facet->getResultsKeyedByRawValue();
          $results = $keyed_results + $current_facet->getResultsKeyedByRawValue();
          break;

        case 'diff':
          $results = array_diff_key($results, $current_facet->getResultsKeyedByRawValue());
          $results = array_diff_key($keyed_results, $current_facet->getResultsKeyedByRawValue());
          break;

        case 'intersect':
          $results = array_intersect_key($results, $current_facet->getResultsKeyedByRawValue());
          $results = array_intersect_key($keyed_results, $current_facet->getResultsKeyedByRawValue());
          break;
      }
    }