currentRouteMatch = $route_match; $this->browserStorage = $entity_type_manager->getStorage('entity_browser'); $this->request = $request; $this->formBuilder = $form_builder; } /** * {@inheritdoc} */ public static function create(ContainerInterface $container) { return new static( $container->get('controller_resolver'), $container->get('form_builder'), $container->get('class_resolver'), $container->get('current_route_match'), $container->get('entity.manager'), $container->get('request_stack')->getCurrentRequest() ); } /** * {@inheritdoc} */ protected function getFormObject(RouteMatchInterface $route_match, $form_arg) { $browser = $this->loadBrowser(); if ($original_path = $this->request->get('original_path')) { $browser->addAdditionalWidgetParameters(['path_parts' => explode('/', $original_path)]); } return $browser->getFormObject(); } /** * Standalone entity browser title callback. */ public function title() { $browser = $this->loadBrowser(); return Xss::filter($browser->label()); } /** * Loads entity browser object for this page. * * @return \Drupal\entity_browser\EntityBrowserInterface * Loads the entity browser object */ protected function loadBrowser() { /** @var $route \Symfony\Component\Routing\Route */ $route = $this->currentRouteMatch->getRouteObject(); /** @var $browser \Drupal\entity_browser\EntityBrowserInterface */ return $this->browserStorage->load($route->getDefault('entity_browser_id')); } }