class TagViewBuilder in Doubleclick for Publishers (DFP) 8
Provides a DFP Tag view builder.
Hierarchy
- class \Drupal\Core\Entity\EntityHandlerBase uses DependencySerializationTrait, StringTranslationTrait
- class \Drupal\Core\Entity\EntityViewBuilder implements EntityHandlerInterface, EntityViewBuilderInterface, TrustedCallbackInterface uses DeprecatedServicePropertyTrait
- class \Drupal\dfp\View\TagViewBuilder
- class \Drupal\Core\Entity\EntityViewBuilder implements EntityHandlerInterface, EntityViewBuilderInterface, TrustedCallbackInterface uses DeprecatedServicePropertyTrait
Expanded class hierarchy of TagViewBuilder
File
- src/
View/ TagViewBuilder.php, line 27 - Contains \Drupal\dfp\View\TagViewBuilder.
Namespace
Drupal\dfp\ViewView source
class TagViewBuilder extends EntityViewBuilder {
/**
* The module handler.
*
* @var \Drupal\Core\Extension\ModuleHandlerInterface
*/
protected $moduleHandler;
/**
* The config factory.
*
* @var \Drupal\Core\Config\ConfigFactoryInterface
*/
protected $configFactory;
/**
* DFP token service.
*
* @var \Drupal\dfp\TokenInterface
*/
protected $token;
/**
* Constructs a new BlockViewBuilder.
*
* @param \Drupal\Core\Entity\EntityTypeInterface $entityType
* The entity type definition.
* @param EntityRepositoryInterface $entityRepository
* The entity manager service.
* @param \Drupal\Core\Language\LanguageManagerInterface $languageManager
* The language manager.
* @param \Drupal\Core\Theme\Registry $registry
* The theme registry service.
* @param \Drupal\Core\Entity\EntityDisplayRepositoryInterface $entityDisplayRepository
* The entity display repository service.
* @param \Drupal\Core\Extension\ModuleHandlerInterface $moduleHandler
* The module handler.
* @param \Drupal\Core\Config\ConfigFactoryInterface $configFactory
* The config factory.
* @param \Drupal\dfp\TokenInterface $token
* DFP token service.
*/
public function __construct(EntityTypeInterface $entityType, EntityRepositoryInterface $entityRepository, LanguageManagerInterface $languageManager, Registry $registry, EntityDisplayRepositoryInterface $entityDisplayRepository, ModuleHandlerInterface $moduleHandler, ConfigFactoryInterface $configFactory, TokenInterface $token) {
parent::__construct($entityType, $entityRepository, $languageManager, $registry, $entityDisplayRepository);
$this->moduleHandler = $moduleHandler;
$this->configFactory = $configFactory;
$this->token = $token;
}
/**
* {@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('module_handler'), $container
->get('config.factory'), $container
->get('dfp.token'));
}
/**
* {@inheritdoc}
*/
public function buildComponents(array &$build, array $entities, array $displays, $view_mode) {
}
/**
* {@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) {
/** @var \Drupal\dfp\Entity\TagInterface[] $entities */
$build = [];
foreach ($entities as $tag) {
// @todo Ensure a tag is only once on the page.
// @todo Get cache-ability based on tokens used in TagView...
$global_settings = $this->configFactory
->get('dfp.settings');
$tag_view = new TagView($tag, $global_settings, $this->token, $this
->moduleHandler());
$tag_id = $tag
->id();
$build[$tag_id] = [
'#cache' => [
'keys' => [
'entity_view',
'dfp_tag',
$tag_id,
],
],
];
// Sort out the cache tags and contexts.
$cacheable_metadata = CacheableMetadata::createFromObject($global_settings);
$cacheable_metadata
->merge(CacheableMetadata::createFromObject($tag));
$cacheable_metadata
->addCacheTags($this
->getCacheTags());
$cacheable_metadata
->applyTo($build[$tag_id]);
$build[$tag_id] += static::buildPreTag($tag_view);
}
return $build;
}
/**
* Builds a #pre_render-able DFP tag render array.
*
* @param \Drupal\dfp\View\TagView $tag_view
* A DFP tag.
*
* @return array
* A render array with a #pre_render callback to render the DFP tag.
*
* @see \Drupal\dfp\DfpResponseAttachmentsProcessor::processAttachments()
*/
protected static function buildPreTag(TagView $tag_view) {
$build = [
'#contextual_links' => [
'dfp_tag' => [
'route_parameters' => [
'dfp_tag' => $tag_view
->id(),
],
],
],
];
if ($tag_view
->isShortTag()) {
$build['tag'] = [
'#theme' => 'dfp_short_tag',
'#url_jump' => '//' . TagInterface::GOOGLE_SHORT_TAG_SERVICES_URL . '/jump?' . $tag_view
->getShortTagQueryString(),
'#url_ad' => '//' . TagInterface::GOOGLE_SHORT_TAG_SERVICES_URL . '/ad?' . $tag_view
->getShortTagQueryString(),
];
}
else {
$build['tag'] = [
'#theme' => 'dfp_tag',
];
// Attach a tag. These attachments are processed by
// \Drupal\dfp\DfpResponseAttachmentsProcessor::processAttachments().
$build['#attached']['dfp_slot'][] = $tag_view;
}
$build['tag']['#tag'] = $tag_view;
return $build;
}
}
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 | 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 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:: |
|
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. | |
TagViewBuilder:: |
protected | property | The config factory. | |
TagViewBuilder:: |
protected | property |
The module handler. Overrides EntityHandlerBase:: |
|
TagViewBuilder:: |
protected | property | DFP token service. | |
TagViewBuilder:: |
public | function |
Builds the component fields and properties of a set of entities. Overrides EntityViewBuilder:: |
|
TagViewBuilder:: |
protected static | function | Builds a #pre_render-able DFP tag render array. | |
TagViewBuilder:: |
public static | function |
Instantiates a new instance of this entity handler. Overrides EntityViewBuilder:: |
|
TagViewBuilder:: |
public | function |
Builds the render array for the provided entity. Overrides EntityViewBuilder:: |
|
TagViewBuilder:: |
public | function |
Builds the render array for the provided entities. Overrides EntityViewBuilder:: |
|
TagViewBuilder:: |
public | function |
Constructs a new BlockViewBuilder. Overrides EntityViewBuilder:: |
|
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. |