protected function applyFilter_cacheBuster($output)
{
$assetManager = AssetManager::getInstance();
$stylesheet = $assetManager->getMergedStylesheetAsset();
if ($stylesheet->exists()) {
$content = $stylesheet->getContent();
} else {
$content = $assetManager->getMergedStylesheet()->getContent();
}
$cacheBuster = UIAssetCacheBuster::getInstance();
$tagJs = 'cb=' . $cacheBuster->piwikVersionBasedCacheBuster();
$tagCss = 'cb=' . $cacheBuster->md5BasedCacheBuster($content);
$pattern = array('~<script type=[\'"]text/javascript[\'"] src=[\'"]([^\'"]+)[\'"]>~', '~<script src=[\'"]([^\'"]+)[\'"] type=[\'"]text/javascript[\'"]>~', '~<link rel=[\'"]stylesheet[\'"] type=[\'"]text/css[\'"] href=[\'"]([^\'"]+)[\'"] ?/?>~', '~(src|href)=\\"index.php\\?module=([A-Za-z0-9_]+)&action=([A-Za-z0-9_]+)\\?cb=~');
$replace = array('<script type="text/javascript" src="$1?' . $tagJs . '">', '<script type="text/javascript" src="$1?' . $tagJs . '">', '<link rel="stylesheet" type="text/css" href="$1?' . $tagCss . '" />', '$1="index.php?module=$2&action=$3&cb=');
return preg_replace($pattern, $replace, $output);
}