Same name and namespace in other branches
  1. 10 core/modules/block/block.module \template_preprocess_block()
  2. 7.x modules/block/block.module \template_preprocess_block()
  3. 8.9.x core/modules/block/block.module \template_preprocess_block()
  4. 9 core/modules/block/block.module \template_preprocess_block()

Process variables for block.tpl.php

Prepare the values passed to the theme_block function to be passed into a pluggable template engine. Uses block properties to generate a series of template file suggestions. If none are found, the default block.tpl.php is used.

Most themes utilize their own copy of block.tpl.php. The default is located inside "modules/system/block.tpl.php". Look in there for the full list of variables.

The $variables array contains the following arguments:

  • $block

See also

block.tpl.php

File

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

Code

function template_preprocess_block(&$variables) {
  static $block_counter = array();

  // All blocks get an independent counter for each region.
  if (!isset($block_counter[$variables['block']->region])) {
    $block_counter[$variables['block']->region] = 1;
  }

  // Same with zebra striping.
  $variables['block_zebra'] = $block_counter[$variables['block']->region] % 2 ? 'odd' : 'even';
  $variables['block_id'] = $block_counter[$variables['block']->region]++;
  $variables['template_files'][] = 'block-' . $variables['block']->region;
  $variables['template_files'][] = 'block-' . $variables['block']->module;
  $variables['template_files'][] = 'block-' . $variables['block']->module . '-' . $variables['block']->delta;
}