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@14: $requirements['_has_layout_section'] = 'true'; 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@14: $main_defaults['is_rebuilding'] = FALSE; Chris@14: $main_defaults['_controller'] = '\Drupal\layout_builder\Controller\LayoutBuilderController::layout'; 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@14: ->setOptions($options); Chris@14: $collection->add("$route_name_prefix.view", $route); Chris@14: Chris@14: $save_defaults = $defaults; Chris@14: $save_defaults['_controller'] = '\Drupal\layout_builder\Controller\LayoutBuilderController::saveLayout'; Chris@14: $route = (new Route("$path/save")) Chris@14: ->setDefaults($save_defaults) Chris@14: ->setRequirements($requirements) Chris@14: ->setOptions($options); Chris@14: $collection->add("$route_name_prefix.save", $route); Chris@14: Chris@14: $cancel_defaults = $defaults; Chris@14: $cancel_defaults['_controller'] = '\Drupal\layout_builder\Controller\LayoutBuilderController::cancelLayout'; Chris@14: $route = (new Route("$path/cancel")) Chris@14: ->setDefaults($cancel_defaults) Chris@14: ->setRequirements($requirements) Chris@14: ->setOptions($options); Chris@14: $collection->add("$route_name_prefix.cancel", $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@14: } Chris@14: Chris@14: }