En Drupal, los bloques suelen tener id numéricos, lo que dificulta el mantenimiento de los estilos que se les aplica (el id numérico de un block puede cambiar si se lo elimina y vuelve a crear). Puede ser más conveniente usar id descriptivos.
Para eso, se puede aplicar algo como:
template.php
...
/**
* Devuelve un id textual para el block
* http://www.bluepiccadilly.com/2011/12/give-your-drupal-blocks-more-descriptive-html-id-attribute
*/
function block_id(&$block) {
$info = module_invoke($block->module, 'block', 'list');
if ($info[$block->delta]['info']) {
$block_id = 'block-' . $block->module . '-' . $info[$block->delta]['info'];
$block_id = str_replace(array(' ', '_'), '-', strtolower($block_id));
return preg_replace('/[^\-a-z0-9]/', '', $block_id);
} else {
return 'block-' . $block->module . '-' . $block->delta;
}
}
...
block.tpl.php
<div id="<?php echo block_id($block); ?>" class="clear-block block block-<?php print $block->module ?>">
<?php if (!empty($block->subject)): ?>
<h2><?php print $block->subject ?></h2>
<?php endif;?>
<div class="content"><?php print $block->content ?></div>
</div>
En mi caso, usando Omega theme, no había un block.tpl.php por default, así que lo copié de themes/garland/.
Referencia: GIVE YOUR DRUPAL BLOCKS A MORE DESCRIPTIVE HTML ID ATTRIBUTE