Доброго времени суток.
Столкнулся с такой проблемой при верстке сайта. Добавляю класс для вьюхи, например, my_class. Сохраняюсь. В коде выводится my-class, вместо my_class. То есть, Views заменяет подчеркивания на дефисы. Аналогичное поведение заметил у модуля Link https://www.drupal.org/project/link
Подскажите, пожалуйста, почему так происходит и как это исправить?
Комментарии
Замена символа подчеркивания на дефис — встроенное поведение в Drupal 7.
Можно использовать двойное подчеркивание, например,
block__element
, если добавить$conf['allow_css_double_underscores'] = TRUE;
в settings.php.В Drupal 8/9 это включено по умолчанию.
Если надо по БЭМ -
выпейте ядапереписывайте шаблон вьюхи (или поля). Во вьюхе есть "Информация" - там и имена шаблонов можно посмотреть и сам вывод шаблонов взять.Да, интересует верстка сайтов на Друпал именно по методологии БЭМ.
Напомню, что согласно методологии БЭМ:
block-name - блок
block-name__element - элемент
block-name_modifier, block-name__element_modifier - модификаторы.
Соответственно, желательно использовать в именах классов одинарное и двойное подчеркивание.
Вариант, предложенный madt, с $conf['allow_css_double_underscores'] = TRUE; в принципе рабочий, если в именах модификаторов использовать двойной дефис, а не одинарное подчеркивание. Пример block-name--modifier
Интересно, что в модуле https://www.drupal.org/project/block_class в именах классов можно без проблем использовать одинарное подчеркивание. Жаль, что моих знаний не хватает, чтобы понять, как это там реализовано, и можно ли это применить для других модулей Друпала.
БЭМ допускает несколько альтернативных схем наименования, одна из них — «Стиль Two Dashes»:
block-name__elem-name--mod-name--mod-val
Такая схема будет работать с включенным
$conf['allow_css_double_underscores'] = TRUE;
Пояснение:
Спасибо за пояснения. Только начал знакомиться с этой методологией.
Не по теме, но всё-таки.
Если используете БЭМ, что очень правильно, советую посмотреть в сторону темы Никлана Glisseo, которая вам упростит жизнь в разы и позволит всё кастомизировать нормально.