getDefinition('block_content'); $storage = \Drupal::entityTypeManager()->getStorage('block_content'); // If the storage class is an instance SqlContentEntityStorage we can use it // to determine the table to use, otherwise we have to get the table from the // entity type. if ($storage instanceof SqlContentEntityStorage) { $table = $entity_type->isTranslatable() ? $storage->getDataTable() : $storage->getBaseTable(); } else { $table = $entity_type->isTranslatable() ? $entity_type->getDataTable() : $entity_type->getBaseTable(); } // If we were not able to get a table name we can not update the views. if (empty($table)) { return; } \Drupal::classResolver(ConfigEntityUpdater::class)->update($sandbox, 'view', function ($view) use ($table) { /** @var \Drupal\views\ViewEntityInterface $view */ if ($view->get('base_table') !== $table) { return FALSE; } $save_view = FALSE; $displays = $view->get('display'); foreach ($displays as $display_name => &$display) { // Update the default display and displays that have overridden filters. if (!isset($display['display_options']['filters']['reusable']) && ($display_name === 'default' || isset($display['display_options']['filters']))) { $display['display_options']['filters']['reusable'] = [ 'id' => 'reusable', 'table' => $table, 'field' => 'reusable', 'relationship' => 'none', 'group_type' => 'group', 'admin_label' => '', 'operator' => '=', 'value' => '1', 'group' => 1, 'exposed' => FALSE, 'expose' => [ 'operator_id' => '', 'label' => '', 'description' => '', 'use_operator' => FALSE, 'operator' => '', 'identifier' => '', 'required' => FALSE, 'remember' => FALSE, 'multiple' => FALSE, ], 'is_grouped' => FALSE, 'group_info' => [ 'label' => '', 'description' => '', 'identifier' => '', 'optional' => TRUE, 'widget' => 'select', 'multiple' => FALSE, 'remember' => FALSE, 'default_group' => 'All', 'default_group_multiple' => [], 'group_items' => [], ], 'entity_type' => 'block_content', 'entity_field' => 'reusable', 'plugin_id' => 'boolean', ]; $save_view = TRUE; } } if ($save_view) { $view->set('display', $displays); } return $save_view; }); }