/** * 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 $files (Optional) A string of files to load * * @return void */ public function __construct($config = array(), $key = '', $base64 = '', $files = '') { $this->setConfig($config); $files = array(); if ($key) { $files = sfCombinePlusUrl::getFilesByKey($key); } else { if ($base64) { $files = sfCombinePlusUrl::getFilesByBase64($base64); } else { if ($files) { $files = sfCombinePlusUrl::getFiles($files); } } } $this->setFiles($files); }
/** * @see get_combined_javascripts */ function get_combined_stylesheets($groups = null, $groupType = sfCombinePlusManager::GROUP_INCLUDE, $onlyUnusedGroups = true, $markGroupsUsed = true) { if (!sfConfig::get('app_sfCombinePlusPlugin_enabled', false)) { return get_stylesheets(); } $manager = sfCombinePlusManager::getCssManager(); sfConfig::set('symfony.asset.stylesheets_included', true); $response = sfContext::getInstance()->getResponse(); $config = sfConfig::get('app_sfCombinePlusPlugin_css', array()); $doNotCombine = isset($config['combine_skip']) ? $config['combine_skip'] : array(); $manager->setSkips(array_merge($manager->getSkips(), $doNotCombine)); $groupedFiles = $manager->getAssetsByGroup($response->getStylesheets(), $config['combine'], $groups, $groupType, $onlyUnusedGroups, $markGroupsUsed); $html = ''; foreach ($groupedFiles as $fileDetails) { if (!$fileDetails['combinable']) { $html .= stylesheet_tag(stylesheet_path($fileDetails['files']), $fileDetails['options']); } else { $route = isset($config['route']) ? $config['route'] : 'sfCombinePlus'; $html .= stylesheet_tag(url_for('@' . $route . '?module=sfCombinePlus&action=js&' . sfCombinePlusUrl::getUrlString($fileDetails['files'])), $fileDetails['options']); } } return $html; }