/** * Constructs object and loads files if possible * * If a key is used files will be tried to be loaded off that key, if base64 * that will be loaded and finally the files string * * @param array $config (Optional) An array of config options based * off app.yml * @param string $key (Optional) A sha1 hash to the database table * @param string $base64 (Optional) A base64 string of files to load * @param string $fileString (Optional) A string of files to load * * @return void */ public function __construct($config = array(), $key = '', $base64 = '', $fileString = '') { $this->setConfig($config); $files = array(); if ($key) { $files = sfCombineUrl::getFilesByKey($key); } else { if ($base64) { $files = sfCombineUrl::getFilesByBase64($base64); } else { if ($fileString) { $files = sfCombineUrl::getFiles($fileString, true); } } } $this->setFiles($files); }
/** * @see get_combined_javascripts */ function get_combined_stylesheets($groups = null, $groupType = sfCombineManager::GROUP_INCLUDE, $onlyUnusedGroups = true, $markGroupsUsed = true) { // because of groups its better to run this through when sfCombine is disabled // but just set all files to do not combine $sfCombineEnabled = sfConfig::get('app_sfCombinePlugin_enabled', false); $manager = sfCombineManager::getCssManager(); sfConfig::set('symfony.asset.stylesheets_included', true); $response = sfContext::getInstance()->getResponse(); $config = sfConfig::get('app_sfCombinePlugin_css', array()); $doNotCombine = isset($config['combine_skip']) ? $config['combine_skip'] : array(); $manager->setSkips(array_merge($manager->getSkips(), $doNotCombine)); $groupedFiles = $manager->getAssetsByGroup($response->getStylesheets(), $sfCombineEnabled ? $config['combine'] : false, $groups, $groupType, $onlyUnusedGroups, $markGroupsUsed, array(new sfCombineCombinerCss(), 'getAssetPath')); $html = ''; $timestampConfig = sfConfig::get('app_sfCombinePlugin_timestamp', array()); foreach ($groupedFiles as $fileDetails) { if (!$fileDetails['combinable']) { $file = $fileDetails['files']; if (isset($timestampConfig['uncombinable']) && $timestampConfig['uncombinable'] && $fileDetails['timestamp']) { if (strpos($file, '?') !== false) { $file .= '&t=' . $fileDetails['timestamp']; } else { $file .= '?t=' . $fileDetails['timestamp']; } } $html .= stylesheet_tag($file, $fileDetails['options']); } else { $route = isset($config['route']) ? $config['route'] : 'sfCombine'; $html .= stylesheet_tag(url_for('@' . $route . '?module=sfCombine&action=css&' . sfCombineUrl::getUrlString($fileDetails['files'], $fileDetails['timestamp'])), $fileDetails['options']); } } return $html; }