use Symfony\Component\DependencyInjection\ContainerInterface;
class PackExtension extends \Twig_Extension {
- #, $prefix = '@RapsysPackBundle/Resources/public/', $cpack = '/usr/local/bin/cpack', $jpack = '/usr/local/bin/jpack'
- #$this->kernel = $kernel;
public function __construct(FileLocator $fileLocator, ContainerInterface $containerInterface) {
//Set file locator
$this->fileLocator = $fileLocator;
$this->coutput = 'css/*.pack.css';
//Set default joutput
$this->joutput = 'js/*.pack.js';
+ //Set default ioutput
+ $this->ioutput = 'img/*.pack.jpg';
- //Set default cpack
- $this->cpack = '/usr/local/bin/cpack';
- //Set default jpack
- $this->jpack = '/usr/local/bin/jpack';
+ //Set default cfilter
+ $this->cfilter = array('CPackFilter');
+ //Set default jfilter
+ $this->jfilter = array('JPackFilter');
+ //Set default ifilter
+ $this->ifilter = array('IPackFilter');
//Load configuration
if ($containerInterface->hasParameter('rapsys_pack')) {
- foreach($containerInterface->getParameter('rapsys_pack') as $k => $v) {
- if (isset($this->$k)) {
- $this->$k = $v;
+ if ($parameters = $containerInterface->getParameter('rapsys_pack')) {
+ foreach($parameters as $k => $v) {
+ if (isset($this->$k) && !empty($v)) {
+ $this->$k = $v;
+ }
}
}
}
public function getTokenParsers() {
return array(
- new PackTokenParser($this->fileLocator, $this->containerInterface, $this->prefix, 'stylesheets', $this->coutput, $this->cpack),
- new PackTokenParser($this->fileLocator, $this->containerInterface, $this->prefix, 'javascripts', $this->joutput, $this->jpack),
- #new PackTokenParser($this->fileLocator, $this->containerInterface, $this->prefix, 'image', '*.pack.{tld}'),
+ new PackTokenParser($this->fileLocator, $this->containerInterface, $this->prefix, 'stylesheet', $this->coutput, $this->cfilter),
+ new PackTokenParser($this->fileLocator, $this->containerInterface, $this->prefix, 'javascript', $this->joutput, $this->jfilter),
+ new PackTokenParser($this->fileLocator, $this->containerInterface, $this->prefix, 'image', $this->ioutput, $this->ifilter),
);
}
}