diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/block/block.module | 37 | ||||
-rw-r--r-- | modules/block/block.tpl.php (renamed from modules/system/block.tpl.php) | 0 |
2 files changed, 37 insertions, 0 deletions
diff --git a/modules/block/block.module b/modules/block/block.module index 727f526b5..a933fbf30 100644 --- a/modules/block/block.module +++ b/modules/block/block.module @@ -92,6 +92,10 @@ function block_help($path, $arg) { */ function block_theme() { return array( + 'block' => array( + 'arguments' => array('block' => NULL), + 'template' => 'block', + ), 'block_admin_display_form' => array( 'template' => 'block-admin-display-form', 'file' => 'block.admin.inc', @@ -728,3 +732,36 @@ function _block_get_cache_id($block) { function block_flush_caches() { return array('cache_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/block/block.tpl.php". Look in there for the full list of + * variables. + * + * The $variables array contains the following arguments: + * - $block + * + * @see block.tpl.php + */ +function template_preprocess_block(&$variables) { + static $block_counter = array(); + $variables['block'] = $variables['block']['#block']; + // 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; +}
\ No newline at end of file diff --git a/modules/system/block.tpl.php b/modules/block/block.tpl.php index 459a94034..459a94034 100644 --- a/modules/system/block.tpl.php +++ b/modules/block/block.tpl.php |