paragraphs-8.x-1.11/src/ParagraphsBehaviorCollection.php
src/ParagraphsBehaviorCollection.php
<?php namespace Drupal\paragraphs; use Drupal\Core\Plugin\DefaultLazyPluginCollection; /** * A collection of paragraphs behavior plugins. */ class ParagraphsBehaviorCollection extends DefaultLazyPluginCollection { /** * All behavior plugin definitions. * * @var array */ protected $definitions; /** * {@inheritdoc} * * @return \Drupal\paragraphs\ParagraphsBehaviorInterface */ public function &get($instance_id) { return parent::get($instance_id); } /** * Retrieves all enabled behavior plugins. */ public function getEnabled() { $this->getAll(); $enabled = []; foreach ($this->getConfiguration() as $key => $value) { if (isset($value['enabled']) && $value['enabled'] == TRUE) { $enabled[$key] = $this->get($key); } } return $enabled; } /** * Retrieves all behavior plugins definitions and creates an instance for each * one. */ public function getAll() { // Retrieve all available behavior plugin definitions. if (!$this->definitions) { $this->definitions = $this->manager->getDefinitions(); } // Ensure that there is an instance of all available behavior plugins. // Note that getDefinitions() are keyed by $plugin_id. $instance_id is the // $plugin_id for behavior plugins, since a single behavior plugin can only // exist once in a paragraphs type. foreach ($this->definitions as $plugin_id => $definition) { if (!isset($this->pluginInstances[$plugin_id])) { $this->initializePlugin($plugin_id); } } return $this->pluginInstances; } /** * {@inheritdoc} */ protected function initializePlugin($instance_id) { $configuration = isset($this->configurations[$instance_id]) ? $this->configurations[$instance_id] : []; $this->set($instance_id, $this->manager->createInstance($instance_id, $configuration)); } }