You are here

public function SocialContentBlockOverride::loadOverrides in Open Social 8.8

Same name and namespace in other branches
  1. 8.9 modules/social_features/social_content_block/src/SocialContentBlockOverride.php \Drupal\social_content_block\SocialContentBlockOverride::loadOverrides()
  2. 8.6 modules/social_features/social_content_block/src/SocialContentBlockOverride.php \Drupal\social_content_block\SocialContentBlockOverride::loadOverrides()
  3. 8.7 modules/social_features/social_content_block/src/SocialContentBlockOverride.php \Drupal\social_content_block\SocialContentBlockOverride::loadOverrides()
  4. 10.3.x modules/social_features/social_content_block/src/SocialContentBlockOverride.php \Drupal\social_content_block\SocialContentBlockOverride::loadOverrides()
  5. 10.0.x modules/social_features/social_content_block/src/SocialContentBlockOverride.php \Drupal\social_content_block\SocialContentBlockOverride::loadOverrides()
  6. 10.1.x modules/social_features/social_content_block/src/SocialContentBlockOverride.php \Drupal\social_content_block\SocialContentBlockOverride::loadOverrides()
  7. 10.2.x modules/social_features/social_content_block/src/SocialContentBlockOverride.php \Drupal\social_content_block\SocialContentBlockOverride::loadOverrides()

Load overrides.

Overrides ConfigFactoryOverrideInterface::loadOverrides

File

modules/social_features/social_content_block/src/SocialContentBlockOverride.php, line 51

Class

SocialContentBlockOverride
Class SocialContentBlockOverride.

Namespace

Drupal\social_content_block

Code

public function loadOverrides($names) {
  $overrides = [];
  $config_name = 'field.field.paragraph.block.field_block_reference_secondary';
  if (in_array($config_name, $names)) {
    $config = $this->configFactory
      ->getEditable($config_name);
    $settings = $config
      ->getOriginal('settings', FALSE)['plugin_ids'];

    // Get all the blocks from this custom block type.
    $query = \Drupal::entityQuery('block_content')
      ->condition('type', 'custom_content_list');
    $ids = $query
      ->execute();
    foreach ($ids as $id) {
      $block = BlockContent::load($id);
      if ($block) {
        $plugin_ids[] = 'block_content:' . $block
          ->uuid();
      }
    }

    // Add the blocks to the landing page.
    if (isset($plugin_ids)) {
      foreach ($plugin_ids as $plugin_id) {
        $settings[$plugin_id] = $plugin_id;
      }
    }
    $overrides[$config_name]['settings']['plugin_ids'] = $settings;
  }
  if (!$this->definitions) {
    return $overrides;
  }
  $config_name = 'core.entity_form_display.block_content.custom_content_list.default';
  if (in_array($config_name, $names)) {
    $config = $this->configFactory
      ->getEditable($config_name);
    $dependencies = $config
      ->get('dependencies.config');
    $group = $config
      ->get('third_party_settings.field_group.group_filter_options.children');
    $fields = [];
    $field_config_prefix = 'field.field.block_content.custom_content_list.';
    $field_configs = $this->configFactory
      ->listAll($field_config_prefix);
    foreach ($this->definitions as $plugin_definition) {

      // It's set in a six because weights from zero to five are reserved by
      // other fields such as the plugin ID field and plugin filters field.
      $weight = 6;
      foreach ($plugin_definition['fields'] as $field) {
        $field_config = $field_config_prefix . $field;
        if (in_array($field_config, $field_configs)) {
          $dependencies[] = $field_config;
          $group[] = $field;
          $fields[$field] = [
            'weight' => $weight++,
            'settings' => [
              'match_operator' => 'CONTAINS',
              'size' => 60,
              'placeholder' => '',
              'match_limit' => 10,
            ],
            'third_party_settings' => [],
            'type' => 'entity_reference_autocomplete_tags',
            'region' => 'content',
          ];
        }
      }
    }
    $overrides[$config_name] = [
      'dependencies' => [
        'config' => $dependencies,
      ],
      'third_party_settings' => [
        'field_group' => [
          'group_filter_options' => [
            'children' => $group,
          ],
        ],
      ],
      'content' => $fields,
    ];
  }
  $config_name = 'core.entity_view_display.block_content.custom_content_list.default';
  if (in_array($config_name, $names)) {
    $field_config_prefix = 'field.field.block_content.custom_content_list.';
    $field_configs = $this->configFactory
      ->listAll($field_config_prefix);
    foreach ($this->definitions as $plugin_definition) {
      foreach ($plugin_definition['fields'] as $field) {
        $field_config = $field_config_prefix . $field;
        if (in_array($field_config, $field_configs)) {
          $overrides[$config_name]['hidden'][$field] = TRUE;
        }
      }
    }
  }
  return $overrides;
}