Revert "Issue #2786195 by larowlan: Deleted block is not removed from the block list"
This reverts commit 82bece91c3
.
8.3.x
parent
f37eba61fc
commit
c90b15c774
|
@ -105,15 +105,9 @@ class BlockContent extends ContentEntityBase implements BlockContentInterface {
|
|||
*/
|
||||
public function postSave(EntityStorageInterface $storage, $update = TRUE) {
|
||||
parent::postSave($storage, $update);
|
||||
static::invalidateBlockPluginCache();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static function postDelete(EntityStorageInterface $storage, array $entities) {
|
||||
parent::postDelete($storage, $entities);
|
||||
static::invalidateBlockPluginCache();
|
||||
// Invalidate the block cache to update custom block-based derivatives.
|
||||
\Drupal::service('plugin.manager.block')->clearCachedDefinitions();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -290,12 +284,4 @@ class BlockContent extends ContentEntityBase implements BlockContentInterface {
|
|||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Invalidates the block plugin cache after changes and deletions.
|
||||
*/
|
||||
protected static function invalidateBlockPluginCache() {
|
||||
// Invalidate the block cache to update custom block-based derivatives.
|
||||
\Drupal::service('plugin.manager.block')->clearCachedDefinitions();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -44,8 +44,6 @@ class BlockContent extends DeriverBase implements ContainerDeriverInterface {
|
|||
*/
|
||||
public function getDerivativeDefinitions($base_plugin_definition) {
|
||||
$block_contents = $this->blockContentStorage->loadMultiple();
|
||||
// Reset the discovered definitions.
|
||||
$this->derivatives = [];
|
||||
/** @var $block_content \Drupal\block_content\Entity\BlockContent */
|
||||
foreach ($block_contents as $block_content) {
|
||||
$this->derivatives[$block_content->uuid()] = $base_plugin_definition;
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\block_content\Kernel;
|
||||
|
||||
use Drupal\block_content\Entity\BlockContent;
|
||||
use Drupal\block_content\Entity\BlockContentType;
|
||||
use Drupal\Component\Plugin\PluginBase;
|
||||
use Drupal\KernelTests\KernelTestBase;
|
||||
|
||||
/**
|
||||
* Tests that deleting a block clears the cached definitions.
|
||||
*
|
||||
* @group block_content
|
||||
*/
|
||||
class BlockContentDeletionTest extends KernelTestBase {
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = ['block', 'block_content'];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function setUp() {
|
||||
parent::setUp();
|
||||
$this->installEntitySchema('block_content');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests deleting a block_content updates the discovered block plugin.
|
||||
*/
|
||||
public function testDeletingBlockContentShouldClearPluginCache() {
|
||||
// Create a block content type.
|
||||
$block_content_type = BlockContentType::create([
|
||||
'id' => 'spiffy',
|
||||
'label' => 'Mucho spiffy',
|
||||
'description' => "Provides a block type that increases your site's spiffiness by upto 11%",
|
||||
]);
|
||||
$block_content_type->save();
|
||||
// And a block content entity.
|
||||
$block_content = BlockContent::create([
|
||||
'info' => 'Spiffy prototype',
|
||||
'type' => 'spiffy',
|
||||
]);
|
||||
$block_content->save();
|
||||
|
||||
// Make sure the block content provides a derivative block plugin in the
|
||||
// block repository.
|
||||
/** @var \Drupal\Core\Block\BlockManagerInterface $block_manager */
|
||||
$block_manager = $this->container->get('plugin.manager.block');
|
||||
$plugin_id = 'block_content' . PluginBase::DERIVATIVE_SEPARATOR . $block_content->uuid();
|
||||
$this->assertTrue($block_manager->hasDefinition($plugin_id));
|
||||
|
||||
// Now delete the block content entity.
|
||||
$block_content->delete();
|
||||
// The plugin should no longer exist.
|
||||
$this->assertFalse($block_manager->hasDefinition($plugin_id));
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue