Drupal → Красивые CSS классы у представлений Views

28.02.2012

По умолчанию у каждого представления есть 5, довольно невнятных, CSS класса:

view view-[VIEW_NAME] view-id-[VIEW_NAME] view-display-id-[DISPLAY_NAME] view-dom-id-[RANDOM_MD5]

Код ниже, приведёт классы к виду:

view-[VIEW_NAME] view-[VIEW_NAME]-[DISPLAY_NAME]
/**
 * Preprocess function for theme_views_view()
 */
function THEMENAME_preprocess_views_view(&$vars) {
  $remove_classes = array('view', 'view-id-' . $vars['name'], 'view-display-id-' . $vars['display_id']);
  if (!$vars['view']->use_ajax) {
    $remove_classes[] = 'view-dom-id-' . $vars['dom_id'];
  }
  $vars['classes_array'] = array_diff($vars['classes_array'], $remove_classes);
  
  $vars['classes_array'][] = drupal_html_class('view-' . $vars['name'] . '-' . $vars['display_id']);
}
Написанное актуально для
Views 3
Похожие записи

Комментарии

Андрей
01.03.2012, 12:06

Интересно а почему в друпале используется разделение дефисами, а не нижними подчеркиваниями? на то есть везкие причины?
Даже когда задаешь класс для конкретного представления через админку, допустим такой:

context_block он преобразуется к виду context-block

а почему должно использоваться разделение нижним подчёркиванием?

Андрей
01.03.2012, 13:13

ну мне лично как-то привычнее так и я почему-то думал что всем... Это наверное вопрос больше дискусионный... я понял :)

Я просто думал что есть ответ, типо: ну потому что с нижними подчеркиваниями будет бла.. бла ..бла..

Андрей
01.03.2012, 14:47

Кстати, после такого переименования классов, у меня перестали работать контекстные ссылки... Походу какой-то параметр все же нужен..

Спасибо за код пригодится.
По поводу подчеркиваний и тире - я за тире, подчеркивания в css - это не круто :)

view-dom-id-[RANDOM_MD5] нужен для того, чтобы javascript мог однозначно идентифицировать данное представление на странице. Если его убрать не работают некоторые фичи. Например, плавный скроллинг в ajax пейджере.

Гость
04.04.2012, 07:06

а по какому направлению (окромя Гугла) его можно пощупать - ну этот самый "плавный скроллинг в ajax пейджере."?

Гость
20.05.2012, 00:50

Подскажите, пожалуйста, каким образом в функции препроцесса для вьюх сменить дефолтные, например,
view-content и views-view на products, а
cols-3 на grid 3-columns?

Александр
27.01.2013, 16:09

Я так понимаю, что эта функция немного на производительности сказывается ?

Notice: Undefined index: dom_id в функции auto_preprocess_views_view() (строка 61 в файле Z:\domains\urulya\sites\all\themes\auto\template.php).

Добавить комментарий