xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

По умолчанию у каждого представления есть 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
Похожие записи

Комментарии RSS

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

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

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

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

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

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

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

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

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

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

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

не сказывается

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

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании