Cum pot adăuga o clasă la un bloc cu cod (dezvoltare) (Drupal, 7)

Whiskey a intrebat.

Din motive de tematizare, aș dori să adaug o clasă specifică la nivel de „bloc” la unele dintre blocurile pe care le generez cu un modul personalizat. Știu că există un modul block class, , dar aș vrea mai degrabă să o fac direct în cod (nu este nevoie să modific este după aceea).

De asemenea, știu că există hook_block_block_view_alter, , dar acesta nu pare să permită adăugarea sau modificarea claselor.

Este posibil să adaug o clasă cu la un bloc din interiorul codului meu de modul? Folosesc Drupal 7.

Comentarii

  • Versiunea D8 a acestei întrebări: drupal.stackexchange.com/questions/181078/… –  > Por Patrick Kenny.
2 răspunsuri
Capy

Răspunsul lui @flocondetoile este OK, dar modul corect este să folosești drupal_html_class().

function YOURMODULE_preprocess_block(&$variables) {
  $variables['classes_array'][] = drupal_html_class('your-custom-class');
}

Funcția poate fi folosită dintr-un modul, sau dintr-o temă.

Comentarii

  • Mulțumesc, asta era exact ceea ce căutam. O informație în plus: acest exemplu va adăuga clasa la toate blocurile de pe pagină, nu doar la blocurile din modulul tău. Dacă doriți să vizați doar blocurile definite pentru un anumit modul, verificați numele modulului în $variables[‘block’]->module. –  > Por Whiskey.
flocondetoile

Pur și simplu, ați putea folosi o funcție de preprocesare.

function YOURTHEME_preprocess_block(&$vars) {
  if ($vars['block_html_id'] ==  'ID-YOUR-BLOCK') {
    $vars['attributes_array']['class'][] = 'YOUR-CLASS';
  }
}

Tags: