diff --git a/core/config/schema/core.data_types.schema.yml b/core/config/schema/core.data_types.schema.yml index 7273d16..8b5889e 100644 --- a/core/config/schema/core.data_types.schema.yml +++ b/core/config/schema/core.data_types.schema.yml @@ -291,9 +291,15 @@ block_settings: sequence: - type: string label: 'Context' + status: + type: boolean + label: 'Status' info: type: label label: 'Admin info' + view_mode: + type: string + label: 'View mode' provider: type: string label: 'Provider' diff --git a/core/modules/aggregator/aggregator.services.yml b/core/modules/aggregator/aggregator.services.yml index 85b258d..6b191c8 100644 --- a/core/modules/aggregator/aggregator.services.yml +++ b/core/modules/aggregator/aggregator.services.yml @@ -14,8 +14,3 @@ services: logger.channel.aggregator: parent: logger.channel_base arguments: ['aggregator'] - block.aggregator_feed_context: - class: Drupal\aggregator\EventSubscriber\AggregatorFeedContext - arguments: ['@entity.manager', '@theme.manager'] - tags: - - { name: 'event_subscriber' } diff --git a/core/modules/aggregator/src/EventSubscriber/AggregatorFeedContext.php b/core/modules/aggregator/src/EventSubscriber/AggregatorFeedContext.php index ebdc225..09dd845 100644 --- a/core/modules/aggregator/src/EventSubscriber/AggregatorFeedContext.php +++ b/core/modules/aggregator/src/EventSubscriber/AggregatorFeedContext.php @@ -1,19 +1,23 @@ blockStorage->loadByProperties(array('plugin' => 'aggregator_feed_block', 'theme' => $this->themeManager->getActiveTheme()->getName())) as $block_id => $block) { + foreach ($this->blockStorage->loadByProperties(['plugin' => 'aggregator_feed_block', 'theme' => $this->themeManager->getActiveTheme()->getName()]) as $block_id => $block) { /** @var $block \Drupal\block\Entity\Block */ $block_plugin = $block->getPlugin(); - /** @var $block_plugin \Drupal\Component\Plugin\ContextAwarePluginInterface */ + if ($block_plugin instanceof ContextAwarePluginInterface) { $contexts = $block_plugin->getContextMapping(); - if (!isset($feeds[$contexts['feed']])) { - list(, $fid) = explode(':', $contexts['feed']); + list(, $fid) = explode(':', $contexts['feed'], 2); $feed = $this->feedStorage->load($fid); $context = new Context(new ContextDefinition('entity:aggregator_feed')); $context->setContextValue($feed); diff --git a/core/modules/block/src/AggregatorServiceProvider.php b/core/modules/block/src/AggregatorServiceProvider.php new file mode 100644 index 0000000..b0823d7 --- /dev/null +++ b/core/modules/block/src/AggregatorServiceProvider.php @@ -0,0 +1,32 @@ +get('module_handler')->moduleExists('block')) { + $container->register('block.aggregator_feed_context', 'Drupal\aggregator\EventSubscriber\AggregatorFeedContext') + ->addArgument(new Reference('entity.manager')) + ->addArgument(new Reference('theme.manager')) + ->addTag('event_subscriber'); + } + } + +}