[РЕШЕНО] Программное добавление класса к блоку

Главные вкладки

Аватар пользователя whiesam whiesam 17 июля 2014 в 17:29

Признаюсь, первый раз работаю программно с существующими блоками.
Шаблон поменять не предлагать)

Нашел несколько вариантов изменения класса у блока:
1) http://www.webbykat.com/2012/09/adding-class-block-drupal-7-block-class-...
2) Ссылку не помню, но там было через _preprocess_block а не через _alpha_preprocess_block, как в предыдущем.
В итоге ничего не сработало.
Пациент: http://sl-7.ru/blog/80 - блок с QR кодом
id блока как я понял: google-qr-code (если не прав поправьте)

Комментарии

Аватар пользователя drupby drupby 17 июля 2014 в 18:21
function MYTHEME_preprocess_block(&$var) {
  $block_id = $var['block']->module . '-' . $var['block']->delta;
  $classes = &$var['attributes_array']['class'];
  switch ($block_id) {
    /* Add .badge class to block #14 */
    case 'block-14':
      $classes[] = 'badge';
      break;
    /* Add .form class to block #20 */
    case 'block-20':
      $classes[] = 'form';
      break;
    default:
      // Print out block id's
      var_dump($block_id);
      break;
  }
}

смотри что выведет var_dump, то значение и подставляй

Аватар пользователя whiesam whiesam 17 июля 2014 в 19:14

"drupby" wrote:
смотри что выведет var_dump, то значение и подставляй

Спс, совсем забыл что там дефолт можно воткнуть.

Оказался урок корявый. Вот нормальный код:

<?php
function MYTHEME_preprocess_block(&$var) {
  
$block_id $var['block']->module '-' $var['block']->delta;
  
$classes = &$var['classes_array'];

  switch (

$block_id) {
    case 
'ид-блока':
      
$classes[] = 'css-class-here';
      break;
  }
}
?>