Chris@14: id(); Chris@14: $defaults['section_storage_type'] = $type; Chris@14: // Provide an empty value to allow the section storage to be upcast. Chris@14: $defaults['section_storage'] = ''; Chris@14: // Trigger the layout builder access check. Chris@17: $requirements['_layout_builder_access'] = 'view'; Chris@14: // Trigger the layout builder RouteEnhancer. Chris@14: $options['_layout_builder'] = TRUE; Chris@14: // Trigger the layout builder param converter. Chris@14: $parameters['section_storage']['layout_builder_tempstore'] = TRUE; Chris@14: // Merge the passed in options in after Layout Builder's parameters. Chris@14: $options = NestedArray::mergeDeep(['parameters' => $parameters], $options); Chris@14: Chris@14: if ($route_name_prefix) { Chris@14: $route_name_prefix = "layout_builder.$type.$route_name_prefix"; Chris@14: } Chris@14: else { Chris@14: $route_name_prefix = "layout_builder.$type"; Chris@14: } Chris@14: Chris@14: $main_defaults = $defaults; Chris@18: $main_options = $options; Chris@18: if ($entity_type_id) { Chris@18: $main_defaults['_entity_form'] = "$entity_type_id.layout_builder"; Chris@18: } Chris@18: else { Chris@18: $main_defaults['_controller'] = '\Drupal\layout_builder\Controller\LayoutBuilderController::layout'; Chris@18: } Chris@14: $main_defaults['_title_callback'] = '\Drupal\layout_builder\Controller\LayoutBuilderController::title'; Chris@14: $route = (new Route($path)) Chris@14: ->setDefaults($main_defaults) Chris@14: ->setRequirements($requirements) Chris@18: ->setOptions($main_options); Chris@14: $collection->add("$route_name_prefix.view", $route); Chris@14: Chris@18: $discard_changes_defaults = $defaults; Chris@18: $discard_changes_defaults['_form'] = '\Drupal\layout_builder\Form\DiscardLayoutChangesForm'; Chris@18: $route = (new Route("$path/discard-changes")) Chris@18: ->setDefaults($discard_changes_defaults) Chris@14: ->setRequirements($requirements) Chris@14: ->setOptions($options); Chris@18: $collection->add("$route_name_prefix.discard_changes", $route); Chris@14: Chris@14: if (is_subclass_of($definition->getClass(), OverridesSectionStorageInterface::class)) { Chris@14: $revert_defaults = $defaults; Chris@14: $revert_defaults['_form'] = '\Drupal\layout_builder\Form\RevertOverridesForm'; Chris@14: $route = (new Route("$path/revert")) Chris@14: ->setDefaults($revert_defaults) Chris@14: ->setRequirements($requirements) Chris@14: ->setOptions($options); Chris@14: $collection->add("$route_name_prefix.revert", $route); Chris@14: } Chris@17: elseif (is_subclass_of($definition->getClass(), DefaultsSectionStorageInterface::class)) { Chris@17: $disable_defaults = $defaults; Chris@17: $disable_defaults['_form'] = '\Drupal\layout_builder\Form\LayoutBuilderDisableForm'; Chris@17: $disable_options = $options; Chris@17: unset($disable_options['_admin_route'], $disable_options['_layout_builder']); Chris@17: $route = (new Route("$path/disable")) Chris@17: ->setDefaults($disable_defaults) Chris@17: ->setRequirements($requirements) Chris@17: ->setOptions($disable_options); Chris@17: $collection->add("$route_name_prefix.disable", $route); Chris@17: } Chris@14: } Chris@14: Chris@14: }