MediaLibraryThemeHooks.php
Namespace
Drupal\media_library\HookFile
-
core/
modules/ media_library/ src/ Hook/ MediaLibraryThemeHooks.php
View source
<?php
namespace Drupal\media_library\Hook;
use Drupal\Core\Template\Attribute;
use Drupal\Core\Hook\Attribute\Hook;
/**
* Hook implementations for media_library.
*/
class MediaLibraryThemeHooks {
/**
* Implements hook_preprocess_media().
*/
public function preprocessMedia(&$variables) : void {
if ($variables['view_mode'] === 'media_library') {
/** @var \Drupal\media\MediaInterface $media */
$media = $variables['media'];
$variables['#cache']['contexts'][] = 'user.permissions';
$rel = $media->access('edit') ? 'edit-form' : 'canonical';
$variables['url'] = $media->toUrl($rel, [
'language' => $media->language(),
]);
$variables += [
'preview_attributes' => new Attribute(),
'metadata_attributes' => new Attribute(),
];
$variables['status'] = $media->isPublished();
}
}
/**
* Implements hook_preprocess_views_view_fields().
*/
public function preprocessViewsViewFields(&$variables) : void {
// Add classes to media rendered entity field so it can be targeted for
// JavaScript mouseover and click events.
if ($variables['view']->id() === 'media_library' && isset($variables['fields']['rendered_entity'])) {
if (isset($variables['fields']['rendered_entity']->wrapper_attributes)) {
$variables['fields']['rendered_entity']->wrapper_attributes
->addClass('js-click-to-select-trigger');
}
}
}
/**
* Implements hook_preprocess_HOOK() for the 'media_library' view.
*/
public function preprocessViewsViewMediaLibrary(array &$variables) : void {
$variables['attributes']['data-view-display-id'] = $variables['view']->current_display;
}
}
Classes
Title | Deprecated | Summary |
---|---|---|
MediaLibraryThemeHooks | Hook implementations for media_library. |
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.