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

È stato utile?

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
  }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a drupal.stackexchange
scroll top