Twig et ses filtres slice et truncate sous symfony 2

twig-et-ses-filtres-slice-et-truncate-sous-symfony-2



3 060 vues

Bonjour à toutes et à tous, le moteur de templates Twig nous permet d'utiliser de nombreux filtres ce qui rend le développement beaucoup plus pratique. Il existe 2 filtres(slice & truncate) pour gérer la longueur d’une chaîne(string).


 

Slice :


Le filtre slice permet d'extraire la tranche d'une séquence, une cartographie ou la longueur d'une chaîne sans décoder les entités HTML.

Vous trouverez plus d’info sur la documentation officielle

 

Voici comment l’utiliser dans une vue TWIG :

{% set string = 'Bonjour chers ami(e)s MSI ! Plus précisément ceux possédant le MSI-GT783.' %}

{{ string|striptags|slice(0, 55)|raw }}
{# outputs 'Bonjour chers ami(e)s MSI ! Plus précis&eac' #}

 

 

Truncate :


Le filtre truncate permet de limiter la longueur d'une chaîne.

 

Description : variable|truncate ( int  [, bool ][, string] )

Int = Une valeur numérique.

Bool (facultatif) = Condition booléenne qui encodera ou non la valeur de la chaîne de caractère.
Default : false

String (facultatif) = Une chaîne de caractère qui se placera à la fin de votre découpage.
Default : ‘…’

 

Pour utiliser le filtre truncate sous symfony 2, il faut pour cela activer l’extension text !

 

Voici comment l’activer :

//app/config/config.yml
services:
    twig.extension.text:
        class: Twig_Extensions_Extension_Text
        tags:
            - { name: twig.extension }

 

Puis ici, un exemple d'utilisation dans une vue TWIG :

{% set string = 'Bonjour chers ami(e)s MSI ! Plus précisément ceux possédant le MSI-GT783.' %}

{{ string|striptags|truncate(55)|raw }}
{# outputs 'Bonjour chers ami(e)s MSI ! Plus précis&eac...' #}

{{ string|striptags|truncate(55, true)|raw }}
{# outputs 'Bonjour chers ami(e)s MSI ! Plus précisément...' #}

{{ string|striptags|truncate(55, true, ' !!!')|raw }}
{# outputs 'Bonjour chers ami(e)s MSI ! Plus précisément !!!' #}

 

 

En résumé :

  • Le filtre slice sert à extraire une chaîne de caractère d'un point A vers un point B sans décoder les entités HTML
  • Le filtre truncate va couper un texte du début jusqu'à une valeur donnée et peut également faire plus avec ses options facultatives.