WorkspacesLayoutTempstoreRepository.php

Namespace

Drupal\workspaces

File

core/modules/workspaces/src/WorkspacesLayoutTempstoreRepository.php

View source
<?php

declare (strict_types=1);
namespace Drupal\workspaces;

use Drupal\layout_builder\LayoutTempstoreRepository;
use Drupal\layout_builder\SectionStorageInterface;

/**
 * Provides a mechanism for loading workspace-specific layout changes.
 */
class WorkspacesLayoutTempstoreRepository extends LayoutTempstoreRepository {
  
  /**
   * The workspace manager.
   */
  protected WorkspaceManagerInterface $workspaceManager;
  
  /**
   * Sets the workspace manager.
   *
   * @param \Drupal\workspaces\WorkspaceManagerInterface $workspace_manager
   *   The workspace manager service.
   */
  public function setWorkspacesManager(WorkspaceManagerInterface $workspace_manager) : static {
    $this->workspaceManager = $workspace_manager;
    return $this;
  }
  
  /**
   * {@inheritdoc}
   */
  protected function getKey(SectionStorageInterface $section_storage) : string {
    $key = parent::getKey($section_storage);
    // Suffix the layout tempstore key with a workspace ID when one is active.
    if ($this->workspaceManager
      ->hasActiveWorkspace()) {
      $key .= '.workspace:' . $this->workspaceManager
        ->getActiveWorkspace()
        ->id();
    }
    return $key;
  }

}

Classes

Title Deprecated Summary
WorkspacesLayoutTempstoreRepository Provides a mechanism for loading workspace-specific layout changes.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.