X-Git-Url: https://git.rapsys.eu/packbundle/blobdiff_plain/95b2853ef1741e12228063742f3a34097e393a6e..74728125f4c1dbae4c513d01bc83724c18c4108f:/Twig/PackTokenParser.php diff --git a/Twig/PackTokenParser.php b/Twig/PackTokenParser.php index 24a43e9..409a311 100644 --- a/Twig/PackTokenParser.php +++ b/Twig/PackTokenParser.php @@ -4,6 +4,7 @@ namespace Rapsys\PackBundle\Twig; use Symfony\Component\HttpKernel\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerInterface; +use Symfony\Component\Asset\Packages; class PackTokenParser extends \Twig_TokenParser { private $tag; @@ -12,15 +13,17 @@ class PackTokenParser extends \Twig_TokenParser { * Constructor. * * @param class $fileLocator The FileLocator instance + * @param class $containerInterface The Container Interface instance * @param class $assetsPackages The Assets Packages instance * @param string $prefix The prefix path * @param string $tag The tag name * @param string $output The default output string * @param array $filters The default filters array */ - public function __construct(FileLocator $fileLocator, ContainerInterface $containerInterface, $prefix, $tag, $output, $filters) { + public function __construct(FileLocator $fileLocator, ContainerInterface $containerInterface, Packages $assetsPackages, $prefix, $tag, $output, $filters) { $this->fileLocator = $fileLocator; $this->containerInterface = $containerInterface; + $this->assetsPackages = $assetsPackages; $this->prefix = $prefix; $this->tag = $tag; $this->output = $output; @@ -30,8 +33,8 @@ class PackTokenParser extends \Twig_TokenParser { if ($parameters = $this->containerInterface->getParameter('rapsys_pack')) { if (isset($parameters['timeout'])) { $timeout = $parameters['timeout']; - } elseif (isset($parameters['user_agent'])) { - $userAgent = $parameters['user_agent']; + } elseif (isset($parameters['agent'])) { + $userAgent = $parameters['agent']; } elseif (isset($parameters['redirect'])) { $redirect = $parameters['redirect']; } @@ -51,8 +54,8 @@ class PackTokenParser extends \Twig_TokenParser { if (!empty($parameters['timeout'])) { $this->timeout = $parameters['timeout']; } - if (!empty($parameters['user_agent'])) { - $this->userAgent = $parameters['user_agent']; + if (!empty($parameters['agent'])) { + $this->userAgent = $parameters['agent']; } if (!empty($parameters['redirect'])) { $this->redirect = $parameters['redirect']; @@ -198,7 +201,7 @@ class PackTokenParser extends \Twig_TokenParser { //Apply all filters foreach($filters as $filter) { //Prefix with filter - $filter = __NAMESPACE__.'\\Filter\\'.$filter; + #$filter = __NAMESPACE__.'\\Filter\\'.$filter; //Init tool object $tool = new $filter($this->containerInterface, $stream->getSourceContext(), $token->getLine()); //Process content @@ -212,8 +215,12 @@ class PackTokenParser extends \Twig_TokenParser { //Create output dir on demand if (!is_dir($parent = $dir = dirname($this->prefix.$output))) { - //XXX: set as 0777, symfony umask (0022) will reduce rights (0755) - mkdir($dir, 0777, true); + try { + //XXX: set as 0777, symfony umask (0022) will reduce rights (0755) + mkdir($dir, 0777, true); + } catch (\Exception $e) { + throw new \Twig_Error_Syntax(sprintf('Unable to create directory: %s', $dir), $token->getLine(), $stream->getSourceContext()); + } } //Send file content @@ -233,7 +240,9 @@ class PackTokenParser extends \Twig_TokenParser { } //Retrieve asset uri - if (($output = $this->containerInterface->get('assets.packages')->getUrl($output, 'rapsys_pack')) === false) { + //XXX: was next line to support module specific asset configuration + #if (($output = $this->assetsPackages->getUrl($output, 'rapsys_pack')) === false) { + if (($output = $this->assetsPackages->getUrl($output)) === false) { throw new \Twig_Error_Syntax(sprintf('Unable to get url for asset: %s with package %s', $output, 'rapsys_pack'), $token->getLine(), $stream->getSourceContext()); }