drupal/core/themes/classy/classy.theme

60 lines
1.9 KiB
Plaintext

<?php
/**
* @file
* Functions to support theming in the Classy theme.
*
* No changes that impact functionality should be made to this file, as Classy
* will be deprecated in Drupal 9. Changes should instead be made in the core
* themes Bartik, Seven, Claro and/or Umami.
*/
use Drupal\Core\Form\FormStateInterface;
use Drupal\views\Form\ViewsForm;
/**
* Implements hook_preprocess_links__media_library_menu().
*
* This targets the menu of available media types in the media library's modal
* dialog.
*
* @todo Do this in the relevant template once
* https://www.drupal.org/project/drupal/issues/3088856 is resolved.
*/
function classy_preprocess_links__media_library_menu(array &$variables) {
foreach ($variables['links'] as &$link) {
$link['link']['#options']['attributes']['class'][] = 'media-library-menu__link';
}
}
/**
* Implements hook_form_alter().
*/
function classy_form_alter(array &$form, FormStateInterface $form_state, $form_id) {
$form_object = $form_state->getFormObject();
if ($form_object instanceof ViewsForm && strpos($form_object->getBaseFormId(), 'views_form_media_library') === 0) {
$form['#attributes']['class'][] = 'media-library-views-form';
}
}
/**
* Implements hook_preprocess_image_widget().
*/
function classy_preprocess_image_widget(array &$variables) {
$data = &$variables['data'];
// This prevents image widget templates from rendering preview container HTML
// to users that do not have permission to access these previews.
// @todo revisit in https://drupal.org/node/953034
// @todo revisit in https://drupal.org/node/3114318
if (isset($data['preview']['#access']) && $data['preview']['#access'] === FALSE) {
unset($data['preview']);
}
}
/**
* No changes that impact functionality should be made to this file, as Classy
* will be deprecated in Drupal 9. Changes should instead be made in the core
* themes Bartik, Seven, Claro and/or Umami.
*/