variabili preprocess solo per determinati blocchi
Domanda
E 'possibile pre-elaborazione variabili solo per determinati blocchi?
Ho creato tale funzione:. mytheme_preprocess_block__aggregator(&$vars)
ma non funziona
- EDIT -
Sembra essere fissato in Drupal 8 https://drupal.org/node/1751194
Soluzione
Purtroppo, non c'è modo di farlo in quel modo (simile a hook_form_alter ()).
Il modo migliore per farlo sarebbe quello di utilizzare le variabili $ [ 'block'] -> tentativo di applicare le modifiche solo per i blocchi che si desidera:
function mytheme_preprocess_block(&$variables) {
if ($variables['block']->bid === 'target_block_id') {
// do something for this block
} else if ($variables['block']->bid === 'other_target_block_id') {
// do something else for this other block
}
}
Altri suggerimenti
solo per confermare, in Drupal 8 è possibile scrivere funzioni pre-elaborazione per i blocchi specifici. Ad esempio:
Drupal 8
mytheme_preprocess_block__system_branding_block(&$vars) {
// Make changes to the the system branding block
}
Ma si potrebbe anche usare hook_preprocess_block, e l'ID del plug-in:
function mytheme_preprocess_block(&$vars) {
if ($vars['plugin_id'] == 'system_branding_block') {
// Make changes to the the system branding block
}
}
Come accennato da Alex, in Drupal 7 si dovrà attaccare con HOOK_preprocess_block, e un controllo ID:
Drupal 7
mytheme_preprocess_block(&$vars) {
if ($vars['block']->bid === 'target_block_id') {
// make changes to this block
}
}