class DashboardViewBuilder in Dashboards with Layout Builder 8
Same name and namespace in other branches
- 2.0.x src/Entity/DashboardViewBuilder.php \Drupal\dashboards\Entity\DashboardViewBuilder
Dashboard Entity ViewBuilder.
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\Core\Entity\EntityViewBuilder implements EntityHandlerInterface, EntityViewBuilderInterface, TrustedCallbackInterface uses DeprecatedServicePropertyTrait
- class \Drupal\dashboards\Entity\DashboardViewBuilder
- class \Drupal\Core\Entity\EntityViewBuilder implements EntityHandlerInterface, EntityViewBuilderInterface, TrustedCallbackInterface uses DeprecatedServicePropertyTrait
Expanded class hierarchy of DashboardViewBuilder
File
- src/
Entity/ DashboardViewBuilder.php, line 24
Namespace
Drupal\dashboards\EntityView source
class DashboardViewBuilder extends EntityViewBuilder {
/**
* Dashboard settings.
*
* @var \Drupal\Core\Config\ImmutableConfig
*/
protected $config;
/**
* Section storage handler.
*
* @var \Drupal\layout_builder\SectionStorage\SectionStorageManager
*/
protected $sectionStorageManager;
/**
* Module handler service.
*
* @var \Drupal\Core\Extension\ModuleHandlerInterface
*/
protected $moduleHandler;
/**
* Constructs a new EntityViewBuilder.
*
* @param \Drupal\Core\Entity\EntityTypeInterface $entity_type
* The entity type definition.
* @param \Drupal\Core\Entity\EntityRepositoryInterface $entity_repository
* The entity repository service.
* @param \Drupal\Core\Language\LanguageManagerInterface $language_manager
* The language manager.
* @param \Drupal\Core\Theme\Registry $theme_registry
* The theme registry.
* @param \Drupal\Core\Entity\EntityDisplayRepositoryInterface $entity_display_repository
* The entity display repository.
* @param \Drupal\layout_builder\SectionStorage\SectionStorageManagerInterface $section_storage_manager
* Section storage handler.
* @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
* Module handler interface.
* @param \Drupal\Core\Config\ConfigFactoryInterface $config_factory
* Module config factory interface.
*/
public function __construct(EntityTypeInterface $entity_type, EntityRepositoryInterface $entity_repository, LanguageManagerInterface $language_manager, Registry $theme_registry = NULL, EntityDisplayRepositoryInterface $entity_display_repository = NULL, SectionStorageManagerInterface $section_storage_manager, ModuleHandlerInterface $module_handler, ConfigFactoryInterface $config_factory) {
parent::__construct($entity_type, $entity_repository, $language_manager, $theme_registry, $entity_display_repository);
$this->sectionStorageManager = $section_storage_manager;
$this->moduleHandler = $module_handler;
$this->config = $config_factory
->get('dashboards.settings');
}
/**
* {@inheritdoc}
*/
public static function createInstance(ContainerInterface $container, EntityTypeInterface $entity_type) {
return new static($entity_type, $container
->get('entity.repository'), $container
->get('language_manager'), $container
->get('theme.registry'), $container
->get('entity_display.repository'), $container
->get('plugin.manager.layout_builder.section_storage'), $container
->get('module_handler'), $container
->get('config.factory'));
}
/**
* View entity.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
* Entity to display.
* @param string $view_mode
* View mode.
* @param string $langcode
* Language code.
*/
public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
/**
* @var \Drupal\dashboards\Entity\Dashboard $entity
*/
$build_list = $this
->viewMultiple([
$entity,
], $view_mode, $langcode);
$build = $build_list[0];
$build['#pre_render'][] = [
$this,
'build',
];
$contexts[Dashboard::CONTEXT_TYPE] = $contexts['layout_builder.entity'] = EntityContext::fromEntity($entity);
$cacheability = new CacheableMetadata();
$storage = $this->sectionStorageManager
->findByContext($contexts, $cacheability);
if (is_a($storage, UserDashboardSectionStorage::class)) {
$entity
->loadOverrides();
$contexts[Dashboard::CONTEXT_TYPE] = $contexts['layout_builder.entity'] = EntityContext::fromEntity($entity);
}
$this->moduleHandler
->alter('layout_builder_view_context', $contexts, $storage);
$build = [];
foreach ($storage
->getSections() as $delta => $section) {
try {
$build['sections'][$delta] = $section
->toRenderArray($contexts);
} catch (ContextException $ex) {
}
}
return [
'#attached' => [
'library' => [
'dashboards/core',
],
'drupalSettings' => [
'dashboards' => [
'colormap' => $this->config
->get('colormap') ? $this->config
->get('colormap') : 'summer',
'alpha' => $this->config
->get('alpha') ? $this->config
->get('alpha') / 100 : 80,
'shades' => $this->config
->get('shades') ? $this->config
->get('shades') : 15,
],
],
],
'#type' => 'container',
'#attributes' => [
'class' => [
'dashboards-container',
],
],
'content' => $build,
'#cache' => [
'tags' => $entity
->getCacheTags(),
'context' => $entity
->getCacheContexts(),
],
];
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
DashboardViewBuilder:: |
protected | property | Dashboard settings. | |
DashboardViewBuilder:: |
protected | property |
Module handler service. Overrides EntityHandlerBase:: |
|
DashboardViewBuilder:: |
protected | property | Section storage handler. | |
DashboardViewBuilder:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides EntityViewBuilder:: |
|
DashboardViewBuilder:: |
public | function |
View entity. Overrides EntityViewBuilder:: |
|
DashboardViewBuilder:: |
public | function |
Constructs a new EntityViewBuilder. Overrides EntityViewBuilder:: |
|
DependencySerializationTrait:: |
protected | property | An array of entity type IDs keyed by the property name of their storages. | |
DependencySerializationTrait:: |
protected | property | An array of service IDs keyed by property name used for serialization. | |
DependencySerializationTrait:: |
public | function | 1 | |
DependencySerializationTrait:: |
public | function | 2 | |
DeprecatedServicePropertyTrait:: |
public | function | Allows to access deprecated/removed properties. | |
EntityHandlerBase:: |
protected | function | Gets the module handler. | 2 |
EntityHandlerBase:: |
public | function | Sets the module handler for this handler. | |
EntityViewBuilder:: |
protected | property | The cache bin used to store the render cache. | |
EntityViewBuilder:: |
protected | property | ||
EntityViewBuilder:: |
protected | property | The entity display repository. | |
EntityViewBuilder:: |
protected | property | The entity repository service. | |
EntityViewBuilder:: |
protected | property | Information about the entity type. | |
EntityViewBuilder:: |
protected | property | The type of entities for which this view builder is instantiated. | |
EntityViewBuilder:: |
protected | property | The language manager. | |
EntityViewBuilder:: |
protected | property | The EntityViewDisplay objects created for individual field rendering. | |
EntityViewBuilder:: |
protected | property | The theme registry. | |
EntityViewBuilder:: |
protected | function | Add contextual links. | |
EntityViewBuilder:: |
protected | function | Specific per-entity building. | 1 |
EntityViewBuilder:: |
public | function | Builds an entity's view; augments entity defaults. | |
EntityViewBuilder:: |
public | function |
Builds the component fields and properties of a set of entities. Overrides EntityViewBuilderInterface:: |
6 |
EntityViewBuilder:: |
public | function | Builds multiple entities' views; augments entity defaults. | |
EntityViewBuilder:: |
protected | function | Provides entity-specific defaults to the build process. | 4 |
EntityViewBuilder:: |
public | function |
The cache tag associated with this entity view builder. Overrides EntityViewBuilderInterface:: |
|
EntityViewBuilder:: |
protected | function | Gets an EntityViewDisplay for rendering an individual field. | |
EntityViewBuilder:: |
protected | function | Determines whether the view mode is cacheable. | |
EntityViewBuilder:: |
public | function |
Resets the entity render cache. Overrides EntityViewBuilderInterface:: |
|
EntityViewBuilder:: |
public static | function |
Lists the trusted callbacks provided by the implementing class. Overrides TrustedCallbackInterface:: |
2 |
EntityViewBuilder:: |
public | function |
Builds a renderable array for the value of a single field in an entity. Overrides EntityViewBuilderInterface:: |
|
EntityViewBuilder:: |
public | function |
Builds a renderable array for a single field item. Overrides EntityViewBuilderInterface:: |
|
EntityViewBuilder:: |
public | function |
Builds the render array for the provided entities. Overrides EntityViewBuilderInterface:: |
4 |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
TrustedCallbackInterface:: |
constant | Untrusted callbacks throw exceptions. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger silenced E_USER_DEPRECATION errors. | ||
TrustedCallbackInterface:: |
constant | Untrusted callbacks trigger E_USER_WARNING errors. |