Twigowy filtr - kpiorun/symfony2 GitHub Wiki

Założenia:

  1. Każdy tekst pasujący do wzorca dowolny ciąg znaków zamieni na HTML some text

Należy Stworzyć klasę dziedziczącą po Twig_Extensions

   `<?php

     //src/Piorun/HomeSiteBundle/Twig/PiorunExtension.php

      namespace Piorun\HomeSiteBundle\Twig;

     class PiorunExtension extends \Twig_Extension {

          public function getFilters() {
              return array(
                  new \Twig_SimpleFilter('piorun', array($this, 'strongFilter')),
           );
         }
         /*Funkcja odpowiedzialna za zamianę wybranie i zamianę ciągu znaków*/
         public function strongFilter($text) {

            $txt = preg_replace('/__.*?__/', '<strong>$0</strong>', $text);
            $txt = str_replace('__', '', $txt);

        return $txt;
     }

     public function getName() {
        return 'piorun_extension';
     }
 }`

Następnie w celu aktywacji należy w pliku services.yml dopisać

 `#Piorun/HomeSiteBundle/Resources/config.yml
  services:
        piorun.twig.piorun_extension:
              class: Piorun\HomeSiteBundle\Twig\PiorunExtension
              tags:
                 - { name: twig.extension }` 

W twigu wystarczy użyć filtra w następujący sposób

  `{{'dowolny tekst'|piorun|raw }}`

W wyniku czego otrzymamy

  `<strong>dowolny tekst</strong>`

Uwaga: Jeżeli tekst ma więcej niż jeden ciąg znaków pasujący do wzorca wtedy wynik może wyglądać np.

{{'__dowolny __lorem ipsum__ tekst__'|piorun|raw }}

wynik:

<strong>dowolny </strong><strong>lorem ipsum</strong>tekst__

⚠️ **GitHub.com Fallback** ⚠️