public function executeAsset($request) { try { $name = $this->getRequest()->getParameter('name'); $this->forward404Unless(sfDynamicsPackageDefinition::checkIsValidPackageName($name)); $extensionPosition = strrpos($name, '.'); $assetExtension = substr($name, $extensionPosition + 1); $assetType = sfDynamics::getTypeFromExtension($assetExtension); $name = substr($name, 0, $extensionPosition); $this->package = sfDynamics::getManager()->getPackage($name); $this->{'pre' . ucfirst($assetType)}(); return $this->renderText(sfDynamics::getRenderer()->getAsset($name, $this->package, $assetType, $assetExtension)); } catch (Exception $e) { throw new sfError404Exception($e->getMessage()); } }
public function generateAssetsHtml() { $renderer = sfDynamics::getRenderer(); $html = ''; /* generate useable package array */ $packages = array(); foreach (array_keys($this->packages) as $packageName) { $packages[$packageName] = $this->getPackage($packageName); } foreach (array('javascript' => 'js', 'stylesheet' => 'css') as $type => $ext) { $assets = $this->{$type . 's'}; if (sfDynamicsConfig::isGroupingEnabledFor($type) && sfDynamicsConfig::isSupercacheEnabled()) { $url = sfDynamicsRouting::supercache_for($packages, $ext); $renderer->generateSupercache($url, $packages, $assets, $type); $html .= ' ' . $this->getTag($url, $type) . "\n"; } else { foreach ($assets as $asset) { $url = $this->controller->genUrl(sfDynamicsRouting::uri_for($asset, $ext)); $html .= ' ' . $this->getTag($url, $type) . "\n"; } } } return $html; }
/** * Generate the sfDynamics html tags for a given asset type */ protected function generateHtml($type, $ext) { if (!isset($this->{$type . 's'})) { throw new sfDynamicsException('The ' . $type . ' asset type is unknown'); } $renderer = sfDynamics::getRenderer(); $html = ''; /* generate useable package array */ $packages = array(); foreach (array_keys($this->packages) as $packageName) { $packages[$packageName] = $this->getPackage($packageName); } $assets = $this->{$type . 's'}; if (sfDynamicsConfig::isGroupingEnabledFor($type) && sfDynamicsConfig::isSupercacheEnabled()) { $url = sfDynamicsRouting::supercache_for($packages, $ext); $renderer->generateSupercache($url, $packages, $assets, $type); $url = call_user_func(array('sfDynamicsConfig', 'get' . ucfirst($ext) . 'Cdn')) . $url; $html .= ' ' . $this->getTag($url, $type) . "\n"; } else { foreach ($assets as $asset) { $url = $this->controller->genUrl(sfDynamicsRouting::uri_for($asset, $ext)); $url = call_user_func(array('sfDynamicsConfig', 'get' . ucfirst($ext) . 'Cdn')) . $url; $html .= ' ' . $this->getTag($url, $type) . "\n"; } } return $html; }