Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
100.00% |
1 / 1 |
|
100.00% |
0 / 0 |
CRAP | |
100.00% |
0 / 0 |
| DisplayPluginCollection | |
100.00% |
1 / 1 |
|
100.00% |
6 / 6 |
10 | |
100.00% |
0 / 0 |
| __construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| __destruct | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| get | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| clear | |
100.00% |
1 / 1 |
2 | |
100.00% |
0 / 0 |
|||
| initializePlugin | |
100.00% |
1 / 1 |
4 | |
100.00% |
0 / 0 |
|||
| remove | |
100.00% |
1 / 1 |
1 | |
100.00% |
0 / 0 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\views\DisplayPluginCollection. | |
| */ | |
| namespace Drupal\views; | |
| use Drupal\Component\Plugin\Exception\PluginException; | |
| use Drupal\Component\Plugin\PluginManagerInterface; | |
| use Drupal\Core\Plugin\DefaultLazyPluginCollection; | |
| /** | |
| * A class which wraps the displays of a view so you can lazy-initialize them. | |
| */ | |
| class DisplayPluginCollection extends DefaultLazyPluginCollection { | |
| /** | |
| * Stores a reference to the view which has this displays attached. | |
| * | |
| * @var \Drupal\views\ViewExecutable | |
| */ | |
| protected $view; | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| protected $pluginKey = 'display_plugin'; | |
| /** | |
| * Constructs a DisplayPluginCollection object. | |
| * | |
| * @param \Drupal\views\ViewExecutable | |
| * The view which has this displays attached. | |
| * @param \Drupal\Component\Plugin\PluginManagerInterface $manager | |
| * The manager to be used for instantiating plugins. | |
| */ | |
| public function __construct(ViewExecutable $view, PluginManagerInterface $manager) { | |
| parent::__construct($manager, $view->storage->get('display')); | |
| $this->view = $view; | |
| $this->initializePlugin('default'); | |
| } | |
| /** | |
| * Destructs a DisplayPluginCollection object. | |
| */ | |
| public function __destruct() { | |
| $this->clear(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| * | |
| * @return \Drupal\views\Plugin\views\display\DisplayPluginBase | |
| */ | |
| public function &get($instance_id) { | |
| return parent::get($instance_id); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function clear() { | |
| foreach (array_filter($this->pluginInstances) as $display) { | |
| $display->destroy(); | |
| } | |
| parent::clear(); | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| protected function initializePlugin($display_id) { | |
| // Retrieve and initialize the new display handler with data. | |
| $display = &$this->view->storage->getDisplay($display_id); | |
| try { | |
| $this->configurations[$display_id] = $display; | |
| parent::initializePlugin($display_id); | |
| } | |
| // Catch any plugin exceptions that are thrown. So we can fail nicely if a | |
| // display plugin isn't found. | |
| catch (PluginException $e) { | |
| $message = $e->getMessage(); | |
| drupal_set_message(t('@message', array('@message' => $message)), 'warning'); | |
| } | |
| // If no plugin instance has been created, return NULL. | |
| if (empty($this->pluginInstances[$display_id])) { | |
| return NULL; | |
| } | |
| $this->pluginInstances[$display_id]->initDisplay($this->view, $display); | |
| // If this is not the default display handler, let it know which is since | |
| // it may well use some data from the default. | |
| if ($display_id != 'default') { | |
| $this->pluginInstances[$display_id]->default_display = $this->pluginInstances['default']; | |
| } | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function remove($instance_id) { | |
| $this->get($instance_id)->remove(); | |
| parent::remove($instance_id); | |
| } | |
| } |