Donc, j'essaie de porter un Drupal Module à Drupal 8, et je me lance de manière à traduire une méthode "nom_preprocess_block". Dans le code D7, il filtre de la région qu'un bloc est rendu
if ($vars['elements']['#block']->region == "my_region") {
// Do stuff.
}
Cependant, l'objet "[" #block "] -> région" n'existe pas dans drupal 8, et je ne peux pas sembler trouver une alternative. Est-il toujours possible de faire cela ?
Merci!
Vous devez charger le bloc (ne vous inquiétez pas, il est déjà chargé, donc aucun impact sur la performance).
$block = entity_load('block', $variables['elements']['#id']);
$region = $block->region;
Donc, tout travailler ici est le code que je dois travailler.
use Drupal\block\Entity\Block;
/**
* Implements hook_preprocess_block().
*/
function harfang_preprocess_block(&$variables) {
$block = Block::load($variables['elements']['#id']);
$region = $block->getRegion();
// Add classes to all bocks in footer region.
if($region == 'footer') {
// Do something.
}
}
ajout de la déclaration d'utilisation en haut et retiré les non-associés