Commit ca6164e8 authored by Ide Braakman's avatar Ide Braakman Committed by Goran Nikolovski
Browse files

Issue #3255453 by idebr, gnikolovski: Simplify 'facets_to_include' list for readability

parent ef5a1bcf
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
<?php

/**
 * @file
 * Post update functions for Facets block.
 */

use Drupal\block\BlockInterface;
use Drupal\Core\Config\Entity\ConfigEntityUpdater;

/**
 * Simplify facets_to_include list.
 */
function facets_block_post_update_simplify_facets_to_include(&$sandbox = NULL) {
  // Check if the block module is enabled first.
  if (!\Drupal::moduleHandler()->moduleExists('block')) {
    return;
  }

  \Drupal::classResolver(ConfigEntityUpdater::class)
    ->update($sandbox, 'block', function (BlockInterface $block) {
      if ($block->getPluginId() === 'facets_block') {
        $block_settings = $block->get('settings');
        $block_settings['facets_to_include'] = array_values(array_filter($block_settings['facets_to_include']));
        $block->set('settings', $block_settings);
        return TRUE;
      }
      return FALSE;
    });
}
+3 −5
Original line number Diff line number Diff line
@@ -201,10 +201,10 @@ class FacetsBlock extends BlockBase implements ContainerFactoryPluginInterface {
      'block_settings',
      'hide_empty_block',
    ]);
    $this->configuration['facets_to_include'] = $form_state->getValue([
    $this->configuration['facets_to_include'] = array_values(array_filter($form_state->getValue([
      'block_settings',
      'facets_to_include',
    ]);
    ])));
    $this->configuration['add_js_classes'] = $form_state->getValue([
      'block_settings',
      'add_js_classes',
@@ -227,8 +227,7 @@ class FacetsBlock extends BlockBase implements ContainerFactoryPluginInterface {

    $available_facets = $this->getAvailableFacets();

    foreach ($available_facets as $plugin_id => $facet_title) {
      if (isset($facets_to_include[$plugin_id]) && $facets_to_include[$plugin_id] === $plugin_id) {
    foreach (array_intersect_key($available_facets, array_combine($facets_to_include, $facets_to_include)) as $plugin_id => $facet_title) {
      $block_plugin = $this->pluginManagerBlock->createInstance($plugin_id, []);

      if ($block_plugin && $block_plugin->access($this->currentUser)) {
@@ -265,7 +264,6 @@ class FacetsBlock extends BlockBase implements ContainerFactoryPluginInterface {
        ];
      }
    }
    }

    return $facets;
  }