X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fcore%2Fmodules%2Flayout_builder%2Fsrc%2FRouting%2FLayoutTempstoreParamConverter.php;fp=web%2Fcore%2Fmodules%2Flayout_builder%2Fsrc%2FRouting%2FLayoutTempstoreParamConverter.php;h=263b767f729871845c3d36c120752cf520e97e97;hp=0000000000000000000000000000000000000000;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/web/core/modules/layout_builder/src/Routing/LayoutTempstoreParamConverter.php b/web/core/modules/layout_builder/src/Routing/LayoutTempstoreParamConverter.php new file mode 100644 index 000000000..263b767f7 --- /dev/null +++ b/web/core/modules/layout_builder/src/Routing/LayoutTempstoreParamConverter.php @@ -0,0 +1,63 @@ +layoutTempstoreRepository = $layout_tempstore_repository; + $this->sectionStorageManager = $section_storage_manager; + } + + /** + * {@inheritdoc} + */ + public function convert($value, $definition, $name, array $defaults) { + if (isset($defaults['section_storage_type']) && $this->sectionStorageManager->hasDefinition($defaults['section_storage_type'])) { + if ($section_storage = $this->sectionStorageManager->loadFromRoute($defaults['section_storage_type'], $value, $definition, $name, $defaults)) { + // Pass the plugin through the tempstore repository. + return $this->layoutTempstoreRepository->get($section_storage); + } + } + } + + /** + * {@inheritdoc} + */ + public function applies($definition, $name, Route $route) { + return !empty($definition['layout_builder_tempstore']); + } + +}