8.3.x theme.inc template_preprocess(&$variables, $hook, $info)
8.0.x theme.inc template_preprocess(&$variables, $hook, $info)
8.1.x theme.inc template_preprocess(&$variables, $hook, $info)
8.2.x theme.inc template_preprocess(&$variables, $hook, $info)
8.4.x theme.inc template_preprocess(&$variables, $hook, $info)
6.x theme.inc template_preprocess(&$variables, $hook)
7.x theme.inc template_preprocess(&$variables, $hook)

Adds a default set of helper variables for preprocessors and templates.

This function is called for theme hooks implemented as templates only, not for theme hooks implemented as functions. This preprocess function is the first in the sequence of preprocessing functions that are called when preparing variables for a template.

See the Default theme implementations topic for details.

4 string references to 'template_preprocess'
RegistryTest::testMultipleSubThemes in core/tests/Drupal/KernelTests/Core/Theme/RegistryTest.php
Tests the theme registry with multiple subthemes.
RegistryTest::testSuggestionPreprocessFunctions in core/tests/Drupal/KernelTests/Core/Theme/RegistryTest.php
Tests the theme registry with suggestions.
user_user_login in core/modules/user/user.module
Implements hook_user_login().
user_user_logout in core/modules/user/user.module
Implements hook_user_logout().

File

core/includes/theme.inc, line 1201
The theme system, which controls the output of Drupal.

Code

function template_preprocess(&$variables, $hook, $info) {
  // Merge in variables that don't depend on hook and don't change during a
  // single page request.
  // Use the advanced drupal_static() pattern, since this is called very often.
  static $drupal_static_fast;
  if (!isset($drupal_static_fast)) {
    $drupal_static_fast['default_variables'] = &drupal_static(__FUNCTION__);
  }
  $default_variables = &$drupal_static_fast['default_variables'];
  if (!isset($default_variables)) {
    $default_variables = _template_preprocess_default_variables();
  }
  $variables += $default_variables;

  // When theming a render element, merge its #attributes into
  // $variables['attributes'].
  if (isset($info['render element'])) {
    $key = $info['render element'];
    if (isset($variables[$key]['#attributes'])) {
      $variables['attributes'] = NestedArray::mergeDeep($variables['attributes'], $variables[$key]['#attributes']);
    }
  }
}