class ShareMessageViewBuilder in Share Message 8
Render controller for nodes.
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\Core\Entity\EntityViewBuilder implements EntityHandlerInterface, EntityViewBuilderInterface, TrustedCallbackInterface uses DeprecatedServicePropertyTrait
- class \Drupal\sharemessage\Entity\Handler\ShareMessageViewBuilder
- class \Drupal\Core\Entity\EntityViewBuilder implements EntityHandlerInterface, EntityViewBuilderInterface, TrustedCallbackInterface uses DeprecatedServicePropertyTrait
Expanded class hierarchy of ShareMessageViewBuilder
File
- src/
Entity/ Handler/ ShareMessageViewBuilder.php, line 12
Namespace
Drupal\sharemessage\Entity\HandlerView source
class ShareMessageViewBuilder extends EntityViewBuilder {
/**
* {@inheritdoc}
*/
public function view(EntityInterface $entity, $view_mode = 'full', $langcode = NULL) {
$build = $this
->viewMultiple([
$entity,
], $view_mode, $langcode);
return reset($build);
}
/**
* {@inheritdoc}
*/
public function viewMultiple(array $entities = [], $view_mode = 'full', $langcode = NULL) {
if (empty($entities)) {
return [];
}
$build = [];
foreach ($entities as $entity) {
/* @var \Drupal\sharemessage\ShareMessageInterface $entity */
// EntityViewController expects the entity to be in #sharemessage.
$cacheability_metadata = CacheableMetadata::createFromObject($entity);
$build[$entity
->id()] = [
'#sharemessage' => $entity,
'#contextual_links' => [
'sharemessage' => [
'route_parameters' => [
'sharemessage' => $entity
->id(),
],
],
],
];
$cacheability_metadata
->addCacheableDependency(\Drupal::config('sharemessage.settings'));
$cacheability_metadata
->applyTo($build[$entity
->id()]);
$context = $entity
->getContext($view_mode);
$is_overridden = \Drupal::request()->query
->get('smid') && \Drupal::config('sharemessage.settings')
->get('message_enforcement');
// Add OG Tags to the page if there are none added yet and a corresponding
// view mode was set (or it was altered into such a view mode in getContent()).
$og_view_modes = [
'full',
'only_og_tags',
'no_attributes',
];
if (!$is_overridden && in_array($context['view_mode'], $og_view_modes)) {
$build[$entity
->id()]['#attached']['html_head'] = $this
->mapHeadElements($entity
->buildOGTags($context));
}
// Add twitter card meta tags if setting is active.
if (\Drupal::config('sharemessage.settings')
->get('add_twitter_card')) {
$twitter_tags = $entity
->buildTwitterCardTags($context);
$build[$entity
->id()]['#attached']['html_head'] = array_merge($build[$entity
->id()]['#attached']['html_head'], $twitter_tags);
}
if ($entity
->hasPlugin() && $view_mode != 'only_og_tags') {
$attributes_view_modes = [
'full',
'attributes_only',
];
$plugin_attributes = in_array($context['view_mode'], $attributes_view_modes);
$build[$entity
->id()][$entity
->getPluginID()] = $entity
->getPlugin()
->build($context, $plugin_attributes);
}
}
return $build;
}
/**
* Modifies a buildOGTags structure to work with drupal_add_html_head.
*
* @param array $elements
* An array containing the Open Graph meta tags:
* - title
* - image: If at least one image Url is given.
* - video, video:width, video:height, video:type:
* If at least one video Url is given.
* - url
* - description
* - type
*
* @return array $mapped
* The new structured buildOGTags array to work with drupal_add_html_head.
*/
protected function mapHeadElements(array $elements) {
$mapped = [];
foreach ($elements as $element) {
$mapped[] = [
$element,
str_replace(':', '_', $element['#attributes']['property']),
];
}
return $mapped;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
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 | property | The module handler to invoke hooks on. | 2 |
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:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides EntityHandlerInterface:: |
2 |
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 | Constructs a new EntityViewBuilder. | 2 |
ShareMessageViewBuilder:: |
protected | function | Modifies a buildOGTags structure to work with drupal_add_html_head. | |
ShareMessageViewBuilder:: |
public | function |
Builds the render array for the provided entity. Overrides EntityViewBuilder:: |
|
ShareMessageViewBuilder:: |
public | function |
Builds the render array for the provided entities. Overrides EntityViewBuilder:: |
|
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. |