]> Raphaƫl G. Git Repositories - packbundle/blobdiff - Extension/PackExtension.php
Add download and base64 filters
[packbundle] / Extension / PackExtension.php
index 40863e9979e65476bd7d73ec71b92b56d8875ff9..d32f5bfcb0af28f3ae7bb75a87e795acb32ee82f 100644 (file)
@@ -18,6 +18,7 @@ use Twig\Extension\AbstractExtension;
 
 use Rapsys\PackBundle\Parser\TokenParser;
 use Rapsys\PackBundle\RapsysPackBundle;
+use Rapsys\PackBundle\Util\IntlUtil;
 use Rapsys\PackBundle\Util\SluggerUtil;
 
 /**
@@ -33,30 +34,36 @@ class PackExtension extends AbstractExtension {
        //The filter
        private $filters;
 
+       //The intl util
+       protected $intl;
+
        //The file locator
        protected $locator;
 
-       //The slugger instance
-       protected $slugger;
-
        //The assets package
        protected $package;
 
+       //The slugger util
+       protected $slugger;
+
        /**
         * @link https://twig.symfony.com/doc/2.x/advanced.html
         *
         * {@inheritdoc}
         */
-       public function __construct(FileLocator $locator, ContainerInterface $container, PackageInterface $package, SluggerUtil $slugger) {
+       public function __construct(ContainerInterface $container, IntlUtil $intl, FileLocator $locator, PackageInterface $package, SluggerUtil $slugger) {
+               //Set intl util
+               $this->intl = $intl;
+
                //Set file locator
                $this->locator = $locator;
 
-               //Set slugger
-               $this->slugger = $slugger;
-
                //Set assets packages
                $this->package = $package;
 
+               //Set slugger util
+               $this->slugger = $slugger;
+
                //Retrieve bundle config
                if ($parameters = $container->getParameter(self::getAlias())) {
                        //Set config, output and filters arrays
@@ -86,9 +93,18 @@ class PackExtension extends AbstractExtension {
         */
        public function getFilters(): array {
                return [
+                       new \Twig\TwigFilter('lcfirst', 'lcfirst'),
+                       new \Twig\TwigFilter('ucfirst', 'ucfirst'),
                        new \Twig\TwigFilter('hash', [$this->slugger, 'hash']),
                        new \Twig\TwigFilter('unshort', [$this->slugger, 'unshort']),
-                       new \Twig\TwigFilter('short', [$this->slugger, 'short'])
+                       new \Twig\TwigFilter('short', [$this->slugger, 'short']),
+                       new \Twig\TwigFilter('slug', [$this->slugger, 'slug']),
+                       new \Twig\TwigFilter('intldate', [$this->intl, 'date'], ['needs_environment' => true]),
+                       new \Twig\TwigFilter('intlnumber', [$this->intl, 'number']),
+                       new \Twig\TwigFilter('intlcurrency', [$this->intl, 'currency']),
+                       new \Twig\TwigFilter('download', 'file_get_contents', [false, null]),
+                       new \Twig\TwigFilter('base64_encode', 'base64_encode'),
+                       new \Twig\TwigFilter('base64_decode', 'base64_decode')
                ];
        }