Ejemplo n.º 1
0
 /**
  * @param DispatchEvent $event
  */
 public function processEvent(DispatchEvent $event)
 {
     //Generate the URI and return it in the event
     $uri = $this->generateUriPath($event->getMapType(), $event->getLookupParts(), $this->_httpHost, $event->getPath(), $event->getFilename());
     //Invalid resource requested
     if ($uri === null) {
         $event->setResult(null);
         return;
     }
     $cfg = $this->_dispatcher->getConfig();
     switch ($cfg->getItem('run_on', 'path')) {
         case 'path':
             // asset urls are determined by path prefix
             $path = $cfg->getItem('run_match', 'res');
             $uri = Path::buildUnix($this->_httpHost, $path, $uri);
             break;
         case 'subdomain':
             // asset urls are determined by domain prefix
             $sub = $cfg->getItem('run_match', 'static.');
             $domainP = explode('.', $this->_httpHost);
             if (count($domainP) > 2) {
                 $domain = implode('.', array_slice($domainP, 1));
             } else {
                 $domain = implode('.', $domainP);
             }
             $uri = Path::buildUnix($sub . $domain, $uri);
             break;
         case 'domain':
             // asset urls are determined by FQDN
             $domain = $cfg->getItem('run_match', $this->_httpHost);
             $uri = Path::buildUnix($domain, $uri);
             break;
     }
     $event->setResult('//' . $uri);
 }
Ejemplo n.º 2
0
 /**
  * Generate a resource uri
  *
  * @param $filename
  * @param $path
  * @param $extension
  *
  * @return mixed
  */
 public function getResourceUri($filename, $path = null, $extension = null)
 {
     //If no filename is sent, the resource is very unlikely to be valid
     if (empty($filename)) {
         return null;
     }
     if ($this->isExternalUrl($filename)) {
         return $filename;
     }
     if ($extension !== null) {
         if (substr($filename, -4) !== '.min') {
             $filename = [$filename . '.min.' . $extension, $filename . '.' . $extension];
         } else {
             $filename = [$filename . '.' . $extension];
         }
     }
     $event = new DispatchEvent();
     $event->setLookupParts((array) $this->_lookupParts);
     $event->setMapType($this->_mapType);
     $event->setPath($path);
     foreach ((array) $filename as $fname) {
         $event->setFilename($fname);
         $result = Dispatch::trigger($event);
         if ($result !== null && $result->getResult() !== null) {
             return $result->getResult();
         }
     }
     return null;
 }