function varbase_media_tokens in Varbase Media 8.5
Same name and namespace in other branches
- 8.7 varbase_media.module \varbase_media_tokens()
- 8.6 varbase_media.module \varbase_media_tokens()
- 9.0.x varbase_media.module \varbase_media_tokens()
Implements hook_tokens().
File
- ./
varbase_media.module, line 283 - Contains varbase_media.module.
Code
function varbase_media_tokens($type, $tokens, array $data, array $options, BubbleableMetadata $bubbleable_metadata) {
$url_options = [
'absolute' => TRUE,
];
if (isset($options['langcode'])) {
$url_options['language'] = \Drupal::languageManager()
->getLanguage($options['langcode']);
$langcode = $options['langcode'];
}
else {
$langcode = LanguageInterface::LANGCODE_DEFAULT;
}
$replacements = [];
if ($type === 'media' && !empty($data['media'])) {
/** @var \Drupal\media\MediaInterface $media_entity */
$media_entity = \Drupal::service('entity.repository')
->getTranslationFromContext($data['media'], $langcode, [
'operation' => 'media_entity_tokens',
]);
foreach ($tokens as $token_name => $original) {
switch ($token_name) {
// Social Large (1200x630) image for the selected media type.
case 'social_large':
$replacements[$original] = _varbase_media_image_url($media_entity, 'social_large');
break;
// Social Medium (600x315) image for the selected media type.
case 'social_medium':
$replacements[$original] = _varbase_media_image_url($media_entity, 'social_medium');
break;
// Social Small (280x150) image for the selected media type.
case 'social_small':
$replacements[$original] = _varbase_media_image_url($media_entity, 'social_small');
break;
}
}
}
return $replacements;
}