Revision: 5129
Updated Code
at February 13, 2008 09:35 by berkes
Updated Code
/** * Return a set of blocks available for the current user. * Add a per-region template override option */ function ogt_blocks($region) { $output = ''; if ($list = block_list($region)) { $function = 'region_'. $region; if ($theme_function = theme_get_function($function)) { $blocks = array($list); //leave the buidling to the dedicated function $output = call_user_func_array($theme_function, $blocks); } else { foreach ($list as $key => $block) { //Build the string ourselves. $output .= theme('block', $block); } } } // Add any content assigned to this region through drupal_set_content() calls. $output .= drupal_get_content($region); return $output; } /** * Template/theme for the region named "siteinfo" (footer) * * @return void **/ function ogt_region_siteinfo($blocks) { return _phptemplate_callback('region_siteinfo', array('blocks' => $blocks)); } //-- in a templatefile region_siteinfo.tpl.php, put something like this: <?php foreach ($blocks as $block => $block) : ?> <?php print theme('block', $block); ?> <?php endforeach; ?>
Revision: 5128
Updated Code
at February 13, 2008 09:35 by berkes
Updated Code
/** * Return a set of blocks available for the current user. * Add a per-region template override option */ function ogt_blocks($region) { $output = ''; if ($list = block_list($region)) { $function = 'region_'. $region; if ($theme_function = theme_get_function($function)) { $blocks = array($list); //leave the buidling to the dedicated function $output = call_user_func_array($theme_function, $blocks); } else { foreach ($list as $key => $block) { //Build the string ourselves. $output .= theme('block', $block); } } } // Add any content assigned to this region through drupal_set_content() calls. $output .= drupal_get_content($region); return $output; } /** * Template/theme for the region named "siteinfo" (footer) * * @return void **/ function ogt_region_siteinfo($blocks) { return _phptemplate_callback('region_siteinfo', array('blocks' => $blocks)); } //-- in a templatefile region_siteinfo.tpl.php, put something like this: <?php foreach ($blocks as $block => $block) : ?> <?php print $block ?> <?php endforeach; ?>
Revision: 5127
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 13, 2008 09:18 by berkes
Initial Code
/** * Return a set of blocks available for the current user. * Add a per-region template override option */ function ogt_blocks($region) { $output = ''; if ($list = block_list($region)) { $function = 'region_'. $region; if ($theme_function = theme_get_function($function)) { //leave the buidling to the dedicated function $output = call_user_func_array($theme_function, $list); } else { foreach ($list as $key => $block) { //Build the string ourselves. $output .= theme('block', $block); } } } // Add any content assigned to this region through drupal_set_content() calls. $output .= drupal_get_content($region); return $output; } /** * Template/theme for the region named "siteinfo" (footer) * * @return void **/ function ogt_region_siteinfo($blocks) { return _phptemplate_callback('region_siteinfo', array('blocks' => $blocks)); } //-- in a templatefile region_siteinfo.tpl.php, put something like this: <?php foreach ($blocks as $block => $block) : ?> <?php print $block ?> <?php endforeach; ?>
Initial URL
Initial Description
A per-region override. ogt_blocks is ran for a region, if a region contains blocks, we search for a theme function named theme_region_regionname(). If exists, we run that, else we just return the concatenated blocks for that region.
Initial Title
Allow per-region template overrides.
Initial Tags
template, drupal, theme
Initial Language
PHP