Come funzionano clean_class e clean_id?


12

Sono nuovo della sintassi di Drupal 8 e Twig. Non riesco a capire come funziona il filtro clean_class "region | clean_class"? Che cos'è clean_class qui? Ho aggiunto il seguente codice nel mio file page.html.twig

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

{{ dump(classes) }}

Il suo risultato di stampa:

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

Risposte:


18

clean_classè un filtro che richiama il \Drupal\Component\Utility\Html::getClass()metodo sulla stringa, che:

Prepara una stringa da utilizzare come nome di classe valido.

Fondamentalmente rimuove i caratteri non validi dalle classi HTML in preparazione per il rendering. clean_idè l'equivalente per gli ID HTML.

Esistono anche altri filtri registrati per core, vedi TwigExtension :: getFilters per maggiori dettagli.


Sembra che nell'esempio dell'OP, region | clean_class non restituisca nulla perché le due classi risultanti in {{dump (classi)}} sono 'region' e 'region-' Al momento sto riscontrando lo stesso problema nel tentativo di aggiungere un nome di termine di tassonomia sull'id usando stats.setAttribute ('id', 'optional-industry-' ~ name | clean_id) Se rimuovo il filtro | clean_id, stampa semplicemente 'Array'
amklose
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.