Comment fonctionnent clean_class et clean_id?


12

Je suis nouveau dans la syntaxe Drupal 8 et Twig. Je n'arrive pas à comprendre comment fonctionne son filtre clean_class "region | clean_class"? Qu'est-ce que clean_class ici? J'ai ajouté le code suivant dans mon fichier page.html.twig

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

{{ dump(classes) }}

Son résultat d'impression:

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

Réponses:


18

clean_classest un filtre qui appelle la \Drupal\Component\Utility\Html::getClass()méthode sur la chaîne, qui:

Prépare une chaîne à utiliser comme nom de classe valide.

Fondamentalement, il supprime les caractères non valides des classes HTML en préparation du rendu. clean_idest l'équivalent des identifiants HTML.

Il existe également d'autres filtres enregistrés par core, voir TwigExtension :: getFilters pour plus de détails.


Il semble que dans l'exemple de l'OP, region | clean_class ne renvoie rien parce que les deux classes résultantes dans {{dump (classes)}} sont 'region' et 'region-' J'ai actuellement le même problème en essayant d'ajouter un nom de terme de taxonomie à l'id à l'aide d'attributs.setAttribute ('id', 'Featured Industry-' ~ name | clean_id) Si je supprime le filtre | clean_id, il affiche simplement 'Array'
amklose
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.