diff --git a/core/modules/layout_builder/src/Access/LayoutBuilderLockAccessCheck.php b/core/modules/layout_builder/src/Access/LayoutBuilderLockAccessCheck.php index db90622bc0..7f8e8f403b 100644 --- a/core/modules/layout_builder/src/Access/LayoutBuilderLockAccessCheck.php +++ b/core/modules/layout_builder/src/Access/LayoutBuilderLockAccessCheck.php @@ -18,6 +18,13 @@ */ class LayoutBuilderLockAccessCheck implements AccessInterface { + /** + * The layout tempstore repository. + * + * @var \Drupal\layout_builder\LayoutTempstoreRepositoryInterface + */ + protected $layoutTempstoreRepository; + /** * Constructs a LayoutBuilderLockAccessCheck. * @@ -29,14 +36,7 @@ public function __construct(LayoutTempstoreRepositoryInterface $layout_tempstore } /** - * The layout tempstore repository. - * - * @var \Drupal\layout_builder\LayoutTempstoreRepositoryInterface - */ - protected $layoutTempstoreRepository; - - /** - * Checks for a lock from another user on the layout. + * Checks for a lock on the layout. * * @param \Drupal\layout_builder\SectionStorageInterface $section_storage * The section storage. diff --git a/core/modules/layout_builder/src/Element/LayoutBuilder.php b/core/modules/layout_builder/src/Element/LayoutBuilder.php index 46d92b9b43..ef7c4a957a 100644 --- a/core/modules/layout_builder/src/Element/LayoutBuilder.php +++ b/core/modules/layout_builder/src/Element/LayoutBuilder.php @@ -8,6 +8,7 @@ use Drupal\Core\Plugin\PluginFormInterface; use Drupal\Core\Render\Element; use Drupal\Core\Render\Element\RenderElement; +use Drupal\Core\Render\RendererInterface; use Drupal\Core\Session\AccountInterface; use Drupal\Core\TempStore\Lock; use Drupal\Core\Url; @@ -53,6 +54,13 @@ class LayoutBuilder extends RenderElement implements ContainerFactoryPluginInter */ protected $currentUser; + /** + * The renderer. + * + * @var \Drupal\Core\Render\RendererInterface + */ + protected $renderer; + /** * Constructs a new LayoutBuilder. * @@ -68,12 +76,19 @@ class LayoutBuilder extends RenderElement implements ContainerFactoryPluginInter * The messenger service. * @param \Drupal\Core\Session\AccountInterface $current_user * The current user. + * @param \Drupal\Core\Render\RendererInterface|null $renderer + * The renderer. */ - public function __construct(array $configuration, $plugin_id, $plugin_definition, LayoutTempstoreRepositoryInterface $layout_tempstore_repository, MessengerInterface $messenger, AccountInterface $current_user) { + public function __construct(array $configuration, $plugin_id, $plugin_definition, LayoutTempstoreRepositoryInterface $layout_tempstore_repository, MessengerInterface $messenger, AccountInterface $current_user, RendererInterface $renderer = NULL) { parent::__construct($configuration, $plugin_id, $plugin_definition); $this->layoutTempstoreRepository = $layout_tempstore_repository; $this->messenger = $messenger; $this->currentUser = $current_user; + if (!$renderer) { + @trigger_error('The renderer service must be passed to LayoutBuilder::__construct(), it is required before Drupal 9.0.0.', E_USER_DEPRECATED); + $renderer = \Drupal::service('renderer'); + } + $this->renderer = $renderer; } /** @@ -86,7 +101,8 @@ public static function create(ContainerInterface $container, array $configuratio $plugin_definition, $container->get('layout_builder.tempstore_repository'), $container->get('messenger'), - $container->get('current_user') + $container->get('current_user'), + $container->get('renderer') ); } @@ -130,7 +146,7 @@ protected function lockMessage(SectionStorageInterface $section_storage, Lock $l '#lock' => $lock, '#url' => $section_storage->getLayoutBuilderUrl('discard_changes'), ]; - return \Drupal::service('renderer')->render($message_array); + return $this->renderer->render($message_array); } /**