From e773114d61f305cb45ffb3c0de0d57987f247fcc Mon Sep 17 00:00:00 2001
From: =?utf8?q?Rapha=C3=ABl=20Gertz?=
Date: Tue, 3 Apr 2018 16:26:51 +0200
Subject: [PATCH] Remove bb2html filter Cleanup arguments passing
---
Twig/PackExtension.php | 111 ++++++++---------------------------------
1 file changed, 21 insertions(+), 90 deletions(-)
diff --git a/Twig/PackExtension.php b/Twig/PackExtension.php
index c6e0d96..23cceb6 100644
--- a/Twig/PackExtension.php
+++ b/Twig/PackExtension.php
@@ -5,9 +5,17 @@ namespace Rapsys\PackBundle\Twig;
use Symfony\Component\HttpKernel\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Asset\Packages;
-use Twig\TwigFilter;
class PackExtension extends \Twig_Extension {
+ //The config
+ private $config;
+
+ //The output
+ private $output;
+
+ //The filter
+ private $filters;
+
public function __construct(FileLocator $fileLocator, ContainerInterface $containerInterface, Packages $assetsPackages) {
//Set file locator
$this->fileLocator = $fileLocator;
@@ -16,103 +24,26 @@ class PackExtension extends \Twig_Extension {
//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;
- }
- }
+ //Retrieve bundle config
+ if ($parameters = $containerInterface->getParameter($this->getAlias())) {
+ foreach($parameters as $k => $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)
+ new PackTokenParser($this->fileLocator, $this->assetsPackages, $this->config, 'stylesheet', $this->output['css'], $this->filters['css']),
+ new PackTokenParser($this->fileLocator, $this->assetsPackages, $this->config, 'javascript', $this->output['js'], $this->filters['js']),
+ new PackTokenParser($this->fileLocator, $this->assetsPackages, $this->config, 'image', $this->output['img'], $this->filters['img'])
);
}
- 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'))
- )
- );
+ /**
+ * {@inheritdoc}
+ */
+ public function getAlias() {
+ return 'rapsys_pack';
}
}
--
2.41.1