Добавьте класс к полю на основе регионов страницы

У меня есть свое поле tpl файл, который устанавливает в отделении классы 'полевой объект', 'нечетный/ровный' и т.д. Я должен динамично присвоить класс ему на основе регионов, которые существуют на странице. Я использую тему начальной загрузки и класс, который я должен добавить, отражает количество промежутка столбца, таким образом, f, у меня есть боковая панель слева, я буду иметь меньше пространства для того поля и нуждаться в более узком классе столбца.

Начальная загрузка уже идет с функцией, делающей его для страницы, предварительно обработайте:

function mytheme_preprocess_page(&$variables) {
  // Add information about the number of sidebars.
  if (!empty($variables['page']['sidebar_first']) && !empty($variables['page']['sidebar_second'])) {
    $variables['columns'] = 3;
  }
  elseif (!empty($variables['page']['sidebar_first'])) {
    $variables['columns'] = 2;
  }
  elseif (!empty($variables['page']['sidebar_second'])) {
    $variables['columns'] = 2;
  }
  else {
    $variables['columns'] = 1;
  }

Так в основном то, в чем я нуждаюсь, должно сделать мое поле, знающее о той переменной страницы. Как я могу использовать эту переменную на своем поле tpl файл?

0
19.01.2020, 18:12
1 ответ

Беглый взгляд показывает, что регион содержания перенесен в класс, полученный из той переменной $columns, получив его от этой функции...

/**
 * Returns the correct span class for a region
 */
function _bootstrap_content_span($columns = 1) {
  $class = FALSE;

  switch($columns) {
    case 1:
      $class = 'span12';
      break;
    case 2:
      $class = 'span9';
      break;
    case 3:
      $class = 'span6';
      break;
  }

  return $class;
}

... таким образом, необходимо смочь использовать каскадные функции CSS к теме поле, например...

.span12 .your-field-stuff {
  /* widescreen */
}

.span9 .your-field-stuff {
  /* one sidebar */
}

.span6 .your-field-stuff {
  /* two sidebars */
}
0
08.03.2020, 00:45

Теги

Похожие вопросы