quickFormInstanceManager = $quick_form_instance_manager; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, $base_plugin_id) { return new static( $container->get('quick_form.instance_manager'), ); } /** * {@inheritdoc} */ public function getDerivativeDefinitions($base_plugin_definition) { $links = []; // Load quick forms. /** @var \Drupal\farm_quick\Entity\QuickFormInstanceInterface[] $quick_forms */ $quick_forms = $this->quickFormInstanceManager->getInstances(); // Add a top level menu parent. if (!empty($quick_forms)) { $links['farm.quick'] = [ 'title' => 'Quick forms', 'route_name' => 'farm.quick', 'weight' => -100, ] + $base_plugin_definition; } // Add a link for each quick form. foreach ($quick_forms as $id => $quick_form) { $route_id = 'farm.quick.' . $id; $links[$route_id] = [ 'title' => $quick_form->getLabel(), 'parent' => 'farm.quick:farm.quick', 'route_name' => 'farm_quick.quick_form', 'route_parameters' => [ 'quick_form' => $id, ], ] + $base_plugin_definition; } return $links; } }