vendor/pimcore/pimcore/lib/Twig/Extension/GlossaryExtension.php line 75

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4.  * Pimcore
  5.  *
  6.  * This source file is available under two different licenses:
  7.  * - GNU General Public License version 3 (GPLv3)
  8.  * - Pimcore Commercial License (PCL)
  9.  * Full copyright and license information is available in
  10.  * LICENSE.md which is distributed with this source code.
  11.  *
  12.  *  @copyright  Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  13.  *  @license    http://www.pimcore.org/license     GPLv3 and PCL
  14.  */
  15. namespace Pimcore\Twig\Extension;
  16. use Pimcore\Tool\Glossary\Processor;
  17. use Pimcore\Twig\TokenParser\GlossaryTokenParser;
  18. use Twig\Extension\AbstractExtension;
  19. use Twig\TokenParser\TokenParserInterface;
  20. use Twig\TwigFilter;
  21. /**
  22.  * @internal
  23.  */
  24. class GlossaryExtension extends AbstractExtension
  25. {
  26.     /**
  27.      * @var Processor
  28.      */
  29.     private $glossaryProcessor;
  30.     /**
  31.      * @param Processor $glossaryProcessor
  32.      *
  33.      */
  34.     public function __construct(Processor $glossaryProcessor)
  35.     {
  36.         $this->glossaryProcessor $glossaryProcessor;
  37.     }
  38.     /**
  39.      * {@inheritdoc}
  40.      */
  41.     public function getFilters(): array
  42.     {
  43.         return [
  44.             new TwigFilter('pimcore_glossary', [$this'applyGlossary'], ['is_safe' => ['html']]),
  45.         ];
  46.     }
  47.     /**
  48.      * @param string $string
  49.      * @param array $options
  50.      *
  51.      * @return string
  52.      */
  53.     public function applyGlossary(string $string, array $options = []): string
  54.     {
  55.         if (empty($string) || !is_string($string)) {
  56.             return $string;
  57.         }
  58.         return $this->glossaryProcessor->process($string$options);
  59.     }
  60.     /**
  61.      * @deprecated
  62.      *
  63.      * @return TokenParserInterface[]
  64.      */
  65.     public function getTokenParsers(): array
  66.     {
  67.         return [
  68.             new GlossaryTokenParser(),
  69.         ];
  70.     }
  71.     /**
  72.      * @deprecated
  73.      */
  74.     public function start()
  75.     {
  76.         ob_start();
  77.     }
  78.     /**
  79.      * @deprecated
  80.      *
  81.      * @param array $options
  82.      */
  83.     public function stop(array $options = [])
  84.     {
  85.         $contents ob_get_clean();
  86.         if (empty($contents) || !is_string($contents)) {
  87.             $result $contents;
  88.         } else {
  89.             $result $this->glossaryProcessor->process($contents$options);
  90.         }
  91.         echo $result;
  92.     }
  93. }