$definition) { // Filter out any block that has required context // definitions. if (/*$definition['provider'] === 'layout_builder' &&*/ !empty($definition['context_definitions'])) { /** @var \Drupal\Core\Plugin\Context\ContextDefinitionInterface $context_definition */ foreach ($definition['context_definitions'] as $context_definition) { if ($context_definition->isRequired()) { unset($definitions[$id]); break; } } } } } /** * Implements hook_plugin_filter_TYPE_alter(). */ function ui_patterns_plugin_filter_block_alter(array &$definitions, array $extra, $consumer) { // @todo Determine the 'inline_block' blocks should be allowed outside // of layout_builder https://www.drupal.org/node/2979142. if ($consumer !== 'layout_builder' || !isset($extra['list']) || $extra['list'] !== 'inline_blocks') { foreach ($definitions as $id => $definition) { if ($definition['id'] === 'inline_block') { unset($definitions[$id]); } } } }