Problem/Motivation
DisplayBuilderEventsSubscriber::dispatchToIslands() creates instances before filtering to keep enabled instances only.
$islands = $this->islandManager->createInstances($this->islandManager->getDefinitions(), $contexts, $configuration);
$island_enabled = $event->getEnabledIslands();
$visible_islands = $event->getVisibleIslands();
foreach ($islands as $island_id => $island) {
if (!isset($island_enabled[$island_id])) {
continue;
}
Proposed resolution
Filter the definitions before instantiating:
$definitions = \array_intersect_key($this->islandManager->getDefinitions(), $island_enabled);
$islands = $this->islandManager->createInstances($definitions, $contexts, $configuration);
Remaining tasks
User interface changes
API changes
Data model changes
Comments
Comment #3
mogtofu33 commentedComment #6
pdureau commentedThanks