Как работают clean_class и clean_id?


12

Я новичок в синтаксисе Drupal 8 и Twig. Я не могу понять, как работает его фильтр clean_class "region | clean_class"? Что такое clean_class здесь? Я добавил следующий код в мой файл page.html.twig

{%
  set classes = [
         'region',
         'region-' ~ region|clean_class,
       ]
%}

{{ dump(classes) }}

Результат печати:

array (size=2)
  0 => string 'region' (length=6)
  1 => string 'region-' (length=7)

Ответы:


18

clean_classфильтр, который вызывает \Drupal\Component\Utility\Html::getClass()метод для строки, который:

Готовит строку для использования в качестве допустимого имени класса.

По сути, он удаляет недопустимые символы из классов HTML при подготовке к визуализации. clean_idявляется эквивалентом для идентификаторов HTML.

Существуют и другие фильтры, зарегистрированные по ядру, см. TwigExtension :: getFilters для более подробной информации.


Похоже, что в примере OP, region | clean_class ничего не возвращает, потому что два результирующих класса в {{dump (classes)}}} это 'region' и 'region-' У меня в настоящее время та же проблема, пытаясь добавить имя термина таксономии для идентификатора с использованием attribute.setAttribute ('id', 'featured-industry-' ~ name | clean_id) Если я удаляю фильтр | clean_id, он просто печатает 'Array'
amklose
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.