Пример #1
0
 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;
 }