entityTypeManager = $entity_type_manager; $this->quickFormPluginManager = $quick_form_plugin_manager; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container) { return new static( $container->get('entity_type.manager'), $container->get('plugin.manager.quick_form'), ); } /** * {@inheritdoc} */ public function getInstances(): array { $instances = []; // Iterate through quick form plugin definitions. foreach ($this->quickFormPluginManager->getDefinitions() as $plugin) { // Load quick form instance configuration entities for this plugin. // Exclude disabled quick forms. $entities = $this->entityTypeManager->getStorage('quick_form')->loadByProperties(['plugin' => $plugin['id'], 'status' => TRUE]); if (!empty($entities)) { $instances += $entities; } // Or, if this plugin does not require a quick form instance configuration // entity, then add a new (unsaved) config entity with default values from // the plugin. elseif (empty($plugin['requiresEntity'])) { $instances[$plugin['id']] = QuickFormInstance::create(['id' => $plugin['id'], 'plugin' => $plugin['id']]); } } return $instances; } /** * {@inheritdoc} */ public function createInstance($id) { // First attempt to load a quick form instance config entity. $entity = $this->entityTypeManager->getStorage('quick_form')->load($id); if (!empty($entity)) { $entity->getPlugin()->setQuickId($id); return $entity; } // Or, if this plugin does not require a quick form instance configuration // entity, then add a new (unsaved) config entity with default values from // the plugin. elseif (($plugin = $this->quickFormPluginManager->getDefinition($id, FALSE)) && empty($plugin['requiresEntity'])) { return QuickFormInstance::create(['id' => $id, 'plugin' => $id]); } // No quick form could be instantiated. return NULL; } }