fileLocator = $fileLocator; //Set container interface $this->containerInterface = $containerInterface; //Set assets packages $this->assetsPackages = $assetsPackages; //Set default prefix //XXX: require symfony 3.3 $this->prefix = $this->containerInterface->getParameter('kernel.project_dir').'/web/'; //Set default coutput $this->coutput = 'css/*.pack.css'; //Set default joutput $this->joutput = 'js/*.pack.js'; //Set default ioutput $this->ioutput = 'img/*.pack.jpg'; //Set default cfilter $this->cfilter = array('Rapsys\PackBundle\Twig\Filter\CPackFilter'); //Set default jfilter $this->jfilter = array('Rapsys\PackBundle\Twig\Filter\JPackFilter'); //Set default ifilter $this->ifilter = array('Rapsys\PackBundle\Twig\Filter\IPackFilter'); //Load configuration if ($containerInterface->hasParameter('rapsys_pack')) { if ($parameters = $containerInterface->getParameter('rapsys_pack')) { foreach($parameters as $k => $v) { if (isset($this->$k) && !empty($v)) { $this->$k = $v; } } } } //Fix prefix $this->prefix = $this->fileLocator->locate($this->prefix); } public function getTokenParsers() { return array( new PackTokenParser($this->fileLocator, $this->containerInterface, $this->assetsPackages, $this->prefix, 'stylesheet', $this->coutput, $this->cfilter), new PackTokenParser($this->fileLocator, $this->containerInterface, $this->assetsPackages, $this->prefix, 'javascript', $this->joutput, $this->jfilter), new PackTokenParser($this->fileLocator, $this->containerInterface, $this->assetsPackages, $this->prefix, 'image', $this->ioutput, $this->ifilter) ); } public function getFilters() { return array( new TwigFilter( 'bb2html', function($text) { $ctx = bbcode_create( array( '' => array('type' => BBCODE_TYPE_ROOT), 'code' => array( 'type' => BBCODE_TYPE_OPTARG, 'open_tag' => '
',
								'close_tag' => '
', 'default_arg' => '{CONTENT}' ), 'ul' => array( 'type' => BBCODE_TYPE_NOARG, 'open_tag' => '', 'childs' => 'li' ), 'li' => array( 'type' => BBCODE_TYPE_NOARG, 'open_tag' => '
  • ', 'close_tag' => '
  • ', 'parent' => 'ul', 'childs' => 'url' ), 'url' => array( 'type' => BBCODE_TYPE_OPTARG, 'open_tag' => '', 'close_tag' => '', 'default_arg' => '{CONTENT}', 'parent' => 'p,li' ) ) ); $text = nl2br(bbcode_parse($ctx, htmlspecialchars($text))); if (preg_match_all('#\]*\>(.*?)\#s', $text, $matches) && !empty($matches[1])) { foreach($matches[1] as $string) { $text = str_replace($string, str_replace('
    ', '', $string), $text); } } if (preg_match_all('#\]*\>(.*?)\#s', $text, $matches) && !empty($matches[1])) { foreach($matches[1] as $string) { $text = str_replace($string, str_replace('
    ', '', $string), $text); } } $text = preg_replace( array('#(
    (\r?\n?))*(
    (\r?\n?))*#', '#(
    (\r?\n?))*(
    (\r?\n?))*#', '#(
    (\r?\n?)){2,}#'), array('

    \2\2

    ', '

    \2\2

    ', '

    \2

    '), $text ); return $text; }, array('is_safe' => array('html')) ) ); } }