По умолчанию у каждого представления есть 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
Комментарии
Интересно а почему в друпале используется разделение дефисами, а не нижними подчеркиваниями? на то есть везкие причины?
Даже когда задаешь класс для конкретного представления через админку, допустим такой:
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).
Добавить комментарий