/**
  * @todo add typehinting
  */
 function main(&$param, &$obj)
 {
     $xml = new \DOMDocument('1.0', 'utf-8');
     $xml->substituteEntities = FALSE;
     $xml->loadHTML(mb_convert_encoding($param['pObj']->content, 'HTML-ENTITIES', "UTF-8"));
     $xPath = new \DOMXpath($xml);
     $linkElements = $xPath->query("//link[@rel='stylesheet']");
     #echo "KayStrobach\Dyncss\Hooks\TslibFeContentPostProcAllHook - elements found " . $linkElements->length . "\n";
     if ($linkElements->length > 0) {
         for ($i = 0; $i < $linkElements->length; $i++) {
             $cssFile = $linkElements->item($i)->attributes->getNamedItem('href')->nodeValue;
             $questionMarkPos = strpos($cssFile, '?');
             if ($questionMarkPos !== FALSE) {
                 $cssFile = substr($cssFile, 0, $questionMarkPos);
             }
             $compiledFile = \KayStrobach\Dyncss\Service\DyncssService::getCompiledFile($cssFile);
             if ($compiledFile !== $cssFile) {
                 #$linkElements->item($i)->attributes->getNamedItem('href')->nodeValue = $compiledFile . '?' . filemtime($compiledFile);
                 $param['pObj']->content = str_replace($cssFile, $compiledFile, $param['pObj']->content);
             }
         }
     }
     #$param['pObj']->content = $xml->saveHTML();
     // @todo remove refactored comments ...
 }
 /**
  * @param string $file
  * @throws StopActionException
  */
 public function compileCommand($file = '')
 {
     if (!file_exists($file)) {
         $this->outputLine($file . ' not found');
         throw new StopActionException();
     }
     $this->outputLine(DyncssService::getCompiledFile($file));
 }
 /**
  * This function iterates over the arrays and rebuild them to keep the order, as keynames may change.
  *
  * @param array                             $params
  * @param \TYPO3\CMS\Core\Page\PageRenderer $pagerenderer
  */
 public function execute(&$params, &$pagerenderer)
 {
     if (!is_array($params['cssFiles'])) {
         return;
     }
     $cssFilesArray = [];
     foreach ($params['cssFiles'] as $cssFile => $cssFileSettings) {
         $compiledFile = \KayStrobach\Dyncss\Service\DyncssService::getCompiledFile($cssFile);
         if ($compiledFile !== $cssFile) {
             $cssFileSettings['file'] = $compiledFile;
             //needed for TYPO3 4.6+ ;)
             $cssFileSettings['compress'] = 0;
             $cssFilesArray[$compiledFile] = $cssFileSettings;
         } else {
             $cssFilesArray[$cssFile] = $cssFileSettings;
         }
     }
     $params['cssFiles'] = $cssFilesArray;
 }
 /**
  * @test
  */
 public function getCompiledFileCss()
 {
     $this->assertEquals('test.css', \KayStrobach\Dyncss\Service\DyncssService::getCompiledFile('test.css'), 'check wether css files are untouched');
 }