Як працюють clean_class та clean_id?


13

Я новачок у синтаксисі Drupal 8 та Twig. Я не в змозі зрозуміти, як працює його фільтр clean_class "регіон | 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)

Відповіді:


19

clean_classце фільтр, який викликає \Drupal\Component\Utility\Html::getClass()метод на рядок, який:

Готує рядок для використання як дійсне ім'я класу.

В основному це видаляє недійсні символи з HTML-класів під час підготовки до візуалізації. clean_idє еквівалентом для ідентифікаторів HTML.

Є й інші фільтри, зареєстровані ядром, див. TwigExtension :: getFilters для отримання більш детальної інформації.


Схоже, в прикладі ОП: region | clean_class нічого не повертає, тому що два результуючі класи в {{dump (класах)}} є "регіоном" і "регіоном". У мене зараз одна і та ж проблема, яка намагається додати ім'я терміна таксономії до ідентифікатора, використовуючи attributes.setAttribute ('id', 'featured-industry-' ~ name | clean_id) Якщо я видаляю | filter_ clean_id, він просто надрукує 'Array'
amklose
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.