Ajouter des classes « first » et « last » aux blocs
Date du document en anglais : 4 Mars 2010 - 23h29 - http://drupal.org/node/293188
Parfois, le premier ou le dernier bloc d'une région doit être d'un style différent des autres blocs. Pour avoir une classe « First » ou « Last » sur les premiers et derniers blocs d'une région, vous devez surcharger deux fonctions de thème : theme_block() et theme_blocks().
- Surcharger theme_blocks() :
<?php
function phptemplate_blocks($region) {
$output = '';
if ($list = block_list($region)) {
$blockcounter = 1; // il y a au moins un bloc dans cette région
foreach ($list as $key => $block) {
// $key == <i>module</i>_<i>delta</i>
$block->extraclass = ''; // ajout de la clé 'extraclass' à l'objet $block
if ($blockcounter == 1){ // est-ce le premier bloc de la région ?
$block->extraclass .= ' first';
}
if ($blockcounter == count($list)){ // est-ce le dernier bloc de la région ?
$block->extraclass .= ' last';
}
$output .= theme('block', $block);
$blockcounter++;
}
}
// Ajout d'un contenu attribué à cette région via un appel à drupal_set_content()
$output .= drupal_get_content($region);
return $output;
}
?> - Surcharger theme_block() :
<?php
function phptemplate_block($block) {
// dans cette ligne, l'extraclasse est ajoutée en tant que classe
$output = "<div class=\"block block-$block->module $block->extraclass\"
id=\"block-$block->module-$block->delta\">\n";
$output .= " <h2 class=\"title\">$block->subject</h2>\n";
$output .= " <div class=\"content\">$block->content</div>\n";
$output .= "</div>\n";
return $output;
}
?>
C'est tout !
- Version imprimable
- 3834 lectures
-

Commentaires
Localisation
Si les concepts Drupal 5.x et
Poster un nouveau commentaire