You are here

stable.theme in Drupal 8

Same filename and directory in other branches
  1. 9 core/themes/stable/stable.theme

Functions to support theming in the Stable theme.

File

core/themes/stable/stable.theme
View source
<?php

/**
 * @file
 * Functions to support theming in the Stable theme.
 */
use Drupal\Component\Utility\Html;

/**
 * Implements hook_library_info_alter().
 */
function stable_library_info_alter(&$libraries, $extension) {

  // Add removed css/filter.admin.css file back so that themes overriding
  // this file continue getting same behavior until Drupal 9.
  if ($extension === 'filter') {
    if (isset($libraries['drupal.filter.admin'])) {
      $libraries['drupal.filter.admin']['css']['theme']['css/filter.admin.css'] = [];
    }
    if (isset($libraries['drupal.filter'])) {
      $libraries['drupal.filter']['css']['theme']['css/filter.admin.css'] = [];
    }
  }
}

/**
 * Implements template_preprocess_links().
 */
function stable_preprocess_links(&$variables) {

  // @deprecated in Drupal 8.0.x and will be removed before 9.0.0. This feature
  // of adding a class based on the associative key can cause CSS class name
  // conflicts.
  if (!empty($variables['links'])) {
    foreach ($variables['links'] as $key => $value) {
      if (!is_numeric($key)) {
        $class = Html::getClass($key);
        $variables['links'][$key]['attributes']
          ->addClass($class);
      }
    }
  }
}

/**
 * Implements hook_element_info_alter().
 */
function stable_element_info_alter(array &$info) {
  if (array_key_exists('text_format', $info)) {
    $info['text_format']['#process'][] = 'stable_process_text_format';
  }
}

/**
 * #process callback, for adding classes to filter components.
 *
 * @param array $element
 *   Render array for the text_format element.
 *
 * @return array
 *   Text_format element with the filter classes added.
 */
function stable_process_text_format(array $element) {
  $element['format']['#attributes']['class'][] = 'filter-wrapper';
  $element['format']['guidelines']['#attributes']['class'][] = 'filter-guidelines';
  $element['format']['format']['#attributes']['class'][] = 'filter-list';
  $element['format']['help']['#attributes']['class'][] = 'filter-help';
  return $element;
}

/**
 * Implements hook_preprocess_image_widget().
 */
function stable_preprocess_image_widget(&$variables) {
  if (!empty($variables['element']['fids']['#value'])) {
    $file = reset($variables['element']['#files']);
    $variables['data']['file_' . $file
      ->id()]['filename']['#suffix'] = ' <span class="file-size">(' . format_size($file
      ->getSize()) . ')</span> ';
  }
}

Functions

Namesort descending Description
stable_element_info_alter Implements hook_element_info_alter().
stable_library_info_alter Implements hook_library_info_alter().
stable_preprocess_image_widget Implements hook_preprocess_image_widget().
stable_preprocess_links Implements template_preprocess_links().
stable_process_text_format #process callback, for adding classes to filter components.