Wie funktionieren clean_class und clean_id?

12

Ich bin neu in der Drupal 8- und Twig-Syntax. Ich kann nicht verstehen, wie der Filter clean_class "region | clean_class" funktioniert. Was ist clean_class hier? Ich habe folgenden Code in meine Datei page.html.twig eingefügt

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

{{ dump(classes) }}

Das Druckergebnis:

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

Antworten:

18

clean_classist ein Filter, der die \Drupal\Component\Utility\Html::getClass()Methode für die Zeichenfolge aufruft.

Bereitet eine Zeichenfolge zur Verwendung als gültiger Klassenname vor.

Grundsätzlich werden ungültige Zeichen aus HTML-Klassen entfernt, um das Rendern vorzubereiten. clean_idist das Äquivalent für HTML-IDs.

Es gibt auch andere Filter, die vom Kern registriert werden. Weitere Informationen finden Sie unter TwigExtension :: getFilters .

Clive
quelle
Im Beispiel des OP gibt region | clean_class anscheinend nichts zurück, da die beiden resultierenden Klassen in {{dump (classes)}} 'region' und 'region-' sind. Ich habe derzeit das gleiche Problem beim Hinzufügen Ein Taxonomiebegriffsname für die ID unter Verwendung von attribute.setAttribute ('id', 'Featured-Industry-' ~ name | clean_id) Wenn ich den Filter | clean_id entferne, wird nur 'Array'
gedruckt