Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
CRAP | |
0.00% |
0 / 18 |
BlockPluginCollection | |
0.00% |
0 / 1 |
|
0.00% |
0 / 3 |
56 | |
0.00% |
0 / 18 |
__construct | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 3 |
|||
get | |
0.00% |
0 / 1 |
2 | |
0.00% |
0 / 2 |
|||
initializePlugin | |
0.00% |
0 / 1 |
30 | |
0.00% |
0 / 13 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\block\BlockPluginCollection. | |
*/ | |
namespace Drupal\block; | |
use Drupal\Component\Plugin\Exception\PluginException; | |
use Drupal\Component\Plugin\PluginManagerInterface; | |
use Drupal\Core\Plugin\DefaultSingleLazyPluginCollection; | |
/** | |
* Provides a collection of block plugins. | |
*/ | |
class BlockPluginCollection extends DefaultSingleLazyPluginCollection { | |
/** | |
* The block ID this plugin collection belongs to. | |
* | |
* @var string | |
*/ | |
protected $blockId; | |
/** | |
* Constructs a new BlockPluginCollection. | |
* | |
* @param \Drupal\Component\Plugin\PluginManagerInterface $manager | |
* The manager to be used for instantiating plugins. | |
* @param string $instance_id | |
* The ID of the plugin instance. | |
* @param array $configuration | |
* An array of configuration. | |
* @param string $block_id | |
* The unique ID of the block entity using this plugin. | |
*/ | |
public function __construct(PluginManagerInterface $manager, $instance_id, array $configuration, $block_id) { | |
parent::__construct($manager, $instance_id, $configuration); | |
$this->blockId = $block_id; | |
} | |
/** | |
* {@inheritdoc} | |
* | |
* @return \Drupal\Core\Block\BlockPluginInterface | |
*/ | |
public function &get($instance_id) { | |
return parent::get($instance_id); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
protected function initializePlugin($instance_id) { | |
if (!$instance_id) { | |
throw new PluginException("The block '{$this->blockId}' did not specify a plugin."); | |
} | |
try { | |
parent::initializePlugin($instance_id); | |
} | |
catch (PluginException $e) { | |
$module = $this->configuration['provider']; | |
// Ignore blocks belonging to uninstalled modules, but re-throw valid | |
// exceptions when the module is installed and the plugin is | |
// misconfigured. | |
if (!$module || \Drupal::moduleHandler()->moduleExists($module)) { | |
throw $e; | |
} | |
} | |
} | |
} |